Commit 0db1410
authored
fix(onboarding): prevent Apply Result dialog from being dismissed (#1971)
## Summary
- After pressing "Confirm and Apply" in the onboarding wizard, the Apply
Result dialog (showing success/warning/error/timeout) could be dismissed
via ESC key, clicking outside the overlay, or clicking the header close
(X) button
- This allowed users to bypass the result acknowledgment, miss important
error/warning diagnostic information, and skip the intended navigation
to the Next Steps page
- The dialog is now non-dismissible — the **only** way to proceed is by
clicking the OK button
## What changed
**`OnboardingSummaryStep.vue`** — Apply Result `UModal` (line 1387):
- Added `:dismissible="false"` — uses Nuxt UI's built-in mechanism to
call `e.preventDefault()` on reka-ui's `pointerDownOutside`,
`interactOutside`, and `escapeKeyDown` events
- Added `:close="false"` — removes the header close (X) button, which
would otherwise bypass the `dismissible` guard via reka-ui's
`DialogClose` component
- Removed the `@update:open` handler — dead code since no external close
events can fire with both props set
**`OnboardingSummaryStep.test.ts`**:
- Extended UModal stub to accept `dismissible` and `close` props and
render them as data attributes
- Added test verifying `handleApplyResultConfirm()` (triggered by OK
button) is the sole path to close the dialog and advance to Next Steps
## Modal state audit
```
"Confirm and Apply" clicked
│
├─[has internal boot]──→ Boot Drive Warning Dialog (stays dismissible)
│ ↓ Continue
│
├──→ handleComplete() runs
│ │
│ ★ Apply Result Dialog ← THIS IS FIXED
│ Was: dismissible via ESC / click-outside / X button
│ Now: only closable via OK button
│ ↓ OK → goToNextStep() → NEXT_STEPS
│
└──→ InternalBootConfirmDialog (stays dismissible)
```
## Scope decisions
Only the Apply Result Dialog was made non-dismissible. The Boot Drive
Warning and InternalBootConfirmDialog retain their current dismissible
behavior — these are pre-action confirmations where canceling/escaping
is a valid user choice. The Apply Result Dialog is post-action; the
settings have already been applied, and the user must acknowledge the
outcome.
## Test plan
- [x] Existing tests pass (635 passed, 6 skipped)
- [ ] Manual: Navigate to Summary → Confirm and Apply → Apply Result
appears
- [ ] Manual: Press ESC → dialog stays open
- [ ] Manual: Click outside overlay → dialog stays open
- [ ] Manual: Verify no X button in header
- [ ] Manual: Click OK → navigates to Next Steps
- [ ] Manual: Verify all result severities (success, warning, error,
timeout) are non-dismissible
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Apply result dialog no longer allows users to accidentally dismiss it
by clicking outside or using a close button. Users must now explicitly
confirm the result to close the dialog and proceed.
* **Tests**
* Added test coverage for apply result dialog behavior, validating
visibility states and confirmation flow mechanics.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->1 parent 29f814b commit 0db1410
File tree
2 files changed
+18
-3
lines changed- web
- __test__/components/Onboarding
- src/components/Onboarding/steps
2 files changed
+18
-3
lines changedLines changed: 16 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
255 | 255 | | |
256 | 256 | | |
257 | 257 | | |
258 | | - | |
| 258 | + | |
259 | 259 | | |
260 | | - | |
| 260 | + | |
261 | 261 | | |
262 | 262 | | |
263 | 263 | | |
| |||
584 | 584 | | |
585 | 585 | | |
586 | 586 | | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
587 | 601 | | |
588 | 602 | | |
589 | 603 | | |
| |||
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1386 | 1386 | | |
1387 | 1387 | | |
1388 | 1388 | | |
| 1389 | + | |
| 1390 | + | |
1389 | 1391 | | |
1390 | 1392 | | |
1391 | 1393 | | |
| |||
1396 | 1398 | | |
1397 | 1399 | | |
1398 | 1400 | | |
1399 | | - | |
1400 | 1401 | | |
1401 | 1402 | | |
1402 | 1403 | | |
| |||
0 commit comments