Skip to content

feat(ship): inline two-click confirm for prod deploy (drop the modal) - #217

Open
prellr wants to merge 1 commit into
mainfrom
feat/ship-deploy-inline-confirm
Open

prellr wants to merge 1 commit into
mainfrom
feat/ship-deploy-inline-confirm

Conversation

@prellr

@prellr prellr commented Jun 27, 2026

Copy link
Copy Markdown
Owner

The "Deploy to production" action used a full-screen AlertDialog modal — heavy for something you trigger from the board, and it yanks you out of context. This swaps it for an in-place two-click confirm:

  • Click 1 arms the button in place: it switches to the destructive variant and the label becomes "Click again — ships all of main." No overlay.
  • Click 2 fires the deploy.
  • Auto-reverts after 4s, and disarms on blur (click away to cancel). The "ships everything on main, not one release" warning moves to the armed label + a tooltip on the idle button.

Removes the AlertDialog + its modal-only i18n keys; adds deploy_confirm_inline / deploy_confirm_hint / deploy_in_progress (en + zh-Hans).

Test plan

  • views typecheck + eslint clean; ship-deploy-swimlanes.test.tsx gains a case asserting first click does not dispatch + relabels, second click calls the promote mutation once → 9 pass.
  • Browser: Deploy button arms → confirms in place, no modal; auto-reverts; click-away cancels.

Pairs with #216 (configurable dispatch inputs) — once both land + confirm=deploy-prod is set, the button dispatches cleanly.

🤖 Generated with Claude Code

The "Deploy to production" button opened an AlertDialog modal that took the
user out of the board. Replace it with an in-place two-click confirm: the
first click arms the button (destructive variant, label changes to "Click
again — ships all of main"), the second fires; it auto-reverts after 4s and
disarms on blur. No overlay, never leaves the base interface.

Removes the AlertDialog usage + its modal i18n keys (deploy_confirm_title/
body/action, deploy_cancel); adds deploy_confirm_inline, deploy_confirm_hint
(tooltip carrying the "ships all of main" warning), deploy_in_progress, in
en + zh-Hans.

views typecheck + eslint clean; swimlanes test +1 case (arm → no dispatch,
second click → mutateAsync once) → 9 pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant