fix(pa): show save/delete cohort toast after the modal closes - #3210
Open
khairul-syazwan wants to merge 2 commits into
Open
fix(pa): show save/delete cohort toast after the modal closes#3210khairul-syazwan wants to merge 2 commits into
khairul-syazwan wants to merge 2 commits into
Conversation
The success feedback for saving or deleting a cohort was fired while the confirm modal was still open. It rendered below the modal overlay (z-index 1000) and its 2s auto-dismiss could expire before the modal closed, so the user saw no feedback (most visible on the slower v0.18 instance). Changes: - Raise the app toast above modal overlays (z-index 100000). - Close the delete dialog right after the delete succeeds, before the post-delete list refresh, so the toast appears after the dialog closes. - Defer the save toast to after the save/update succeeds by suppressing the store's inline toast (suppressToast) and firing it after the dialog closes; also disable the Save button while the save is in flight.
khairul-syazwan
requested review from
LSriragavan,
brandantck,
jerome-ng,
maggie-li-yd and
p-hoffmann
as code owners
August 26, 2026 07:39
5 tasks
Contributor
There was a problem hiding this comment.
Pull request overview
Improves cohort save/delete feedback visibility around confirmation dialogs.
Changes:
- Raises toast stacking priority above modal overlays.
- Defers save feedback and closes delete dialogs earlier.
- Disables save controls while saving.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
Bookmarks.vue |
Closes the delete dialog before refresh. |
FiltersFooter.vue |
Adds save-in-progress state and deferred toast. |
SaveCohortModal.vue |
Suppresses bookmark toast and emits final success feedback. |
bookmark.ts |
Adds optional success-toast suppression. |
toast.scss |
Raises toast z-index. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Guard FiltersFooter.saveBookmark against re-entry so a pending save cannot be started again via the name-input Enter key. - Rethrow failed materialized/Atlas/D2E cohort deletes so the delete dialog stays open on failure instead of closing and losing the error context. - Suppress the premature materialize success toast in SaveCohortModal (pass suppressToast to onAddCohortOkButtonPress) so only the post-modal-close success notification is shown.
maggie-li-yd
approved these changes
Aug 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DELETE
Screen.Recording.2026-08-26.at.3.30.20.PM.mov
CREATE
Screen.Recording.2026-08-26.at.3.30.36.PM.mov
UPDATE
Save button is disabled after clicking
Screen.Recording.2026-08-26.at.3.31.02.PM.mov
Summary
Show save/delete cohort success feedback after the confirm modal closes. The success toast fired while the modal was still open, its z-index was below the modal overlay, and its 2s auto-dismiss could expire before the modal closed — so on the slower v0.18 instance the user saw no confirmation. This raises the toast above overlays, closes the delete dialog immediately after delete succeeds, defers the save toast to after the dialog closes, and disables the Save button while a save is in flight.
Affected modules
plugins/ui/apps/vue-mri-ui-lib/src/components/Bookmarks.vueplugins/ui/apps/vue-mri-ui-lib/src/components/FiltersFooter.vueplugins/ui/apps/vue-mri-ui-lib/src/components/ShinyViewer/SaveCohortModal.vueplugins/ui/apps/vue-mri-ui-lib/src/store/modules/bookmark.tsplugins/ui/apps/vue-mri-ui-lib/src/styles/toast.scssValidation performed
Agent-reported evidence — the
no-mistakesgate was not run against this branch because the local working tree had unrelated uncommitted changes (blocking an unclean-tree gate). Evidence collected manually:vite buildforvue-mripasses (2635 modules transformed).vitest runonbookmark.test.ts,MessageToast.test.ts,useDashboardFlow.test.ts— 44 tests pass.plugins/uihoists eslint 7, which cannot read the app's flateslint.config.js.Merge Checklist
developbranch)Refs: #3209