gsxdsm
284feeaf11
FN-9092: prevent model menus from dismissing host dialogs
Keep portaled model-menu interaction from propagating to host dialog dismissal.
- Mark model-menu portal surfaces and stop their pointer events from reaching dialog backdrops.
- Apply the dismissal guard across agent, chat, floating-window, and model-selection dialogs.
- Close enabled overlays on valid touch taps while suppressing duplicate compatibility mouse closes.
- Add desktop and mobile regression coverage for portal-host dismissal behavior.
Files changed:
.../fn-9092-model-filter-dialog-dismissal.md | 7 +
.../ui-bugs/portaled-model-menu-host-dismissal.md | 19 +++
packages/dashboard/app/components/AgentsView.tsx | 6 +
.../app/components/ChatThinkingLevelControl.tsx | 17 ++-
packages/dashboard/app/components/ChatView.tsx | 38 +++--
.../app/components/CustomModelDropdown.tsx | 13 +-
.../dashboard/app/components/FloatingWindow.tsx | 17 +--
.../app/components/ModelSelectionModal.tsx | 17 +--
.../dashboard/app/components/NewAgentDialog.tsx | 12 +-
.../dashboard/app/components/QuickEntryBox.tsx | 5 +-
.../ChatThinkingLevelControl.portal.test.tsx | 9 ++
.../__tests__/CustomModelDropdown.test.tsx | 24 ++-
.../__tests__/ModelSelectionModal.test.tsx | 3 +-
.../NewAgentDialog.portal-dismissal.test.tsx | 77 ++++++++++
.../components/__tests__/NewAgentDialog.test.tsx | 11 ++
.../model-menu-filter-host-dismissal.test.tsx | 163 +++++++++++++++++++++
.../app/hooks/__tests__/useOverlayDismiss.test.tsx | 7 +-
packages/dashboard/app/hooks/useOverlayDismiss.ts | 26 +++-
.../app/utils/__tests__/portalSurfaces.test.ts | 31 ++++
packages/dashboard/app/utils/portalSurfaces.ts | 31 ++++
20 files changed, 469 insertions(+), 64 deletions(-)
Fusion-Task-Id: FN-9092
Fusion-Task-Lineage: a0d0b84d-2efe-4a67-9485-77c08f7cc57e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-15 06:42:39 -07:00
..
2026-07-02 13:51:25 -07:00
2026-07-30 04:37:19 -07:00
2026-07-17 00:29:48 -07:00
2026-06-03 20:02:03 -07:00
2026-06-06 01:42:57 -07:00
2026-06-05 14:23:27 -07:00
2026-06-11 21:26:59 -07:00
2026-06-13 11:53:44 -07:00
2026-06-13 11:22:07 -07:00
2026-06-13 10:29:24 -07:00
2026-06-13 10:14:11 -07:00
2026-07-07 22:04:48 -07:00
2026-07-08 15:09:26 -07:00
2026-07-01 15:39:33 -07:00
2026-07-07 22:04:49 -07:00
2026-06-13 16:30:28 -07:00
2026-06-09 22:44:30 -07:00
2026-07-14 17:18:06 -07:00
2026-08-15 06:42:39 -07:00
2026-06-17 01:22:21 -07:00
2026-06-20 00:41:36 -07:00
2026-06-03 15:05:40 -07:00
2026-06-16 23:21:14 -07:00
2026-07-16 21:13:30 -07:00
2026-06-13 17:26:12 -07:00
2026-07-23 19:46:02 -07:00
2026-07-05 19:42:16 -07:00
2026-06-20 21:02:51 -07:00