From 3fdf9815c8236e1cef9d9160637d60bca72e9130 Mon Sep 17 00:00:00 2001 From: Jo D Date: Tue, 2 Jun 2026 08:58:51 -0400 Subject: [PATCH] fix(webapp): keep select dropdowns usable inside dialogs Modal dialogs (Radix react-remove-scroll + pointer-events lockout) broke the portaled base-ui Select popups: options weren't clickable, the list couldn't wheel-scroll, and clicking an option dismissed the dialog. Mark dialogs that contain Selects as non-modal, re-enable pointer events on listbox popups, and ignore outside-interactions that originate from a select popup so the dialog stays open on selection. --- .../delegation/create-delegation-dialog.tsx | 2 +- webapp/src/components/plan/create-plan-dialog.tsx | 2 +- webapp/src/components/plan/plan-card.tsx | 2 +- .../components/time-travel/time-travel-button.tsx | 2 +- webapp/src/components/ui/dialog.tsx | 15 ++++++++++++++- webapp/src/index.css | 4 ++++ 6 files changed, 22 insertions(+), 5 deletions(-) diff --git a/webapp/src/components/delegation/create-delegation-dialog.tsx b/webapp/src/components/delegation/create-delegation-dialog.tsx index 4c2f119..ab69f09 100644 --- a/webapp/src/components/delegation/create-delegation-dialog.tsx +++ b/webapp/src/components/delegation/create-delegation-dialog.tsx @@ -195,7 +195,7 @@ export function CreateDelegationDialog({ tokenMint, disabled }: CreateDelegation (selectedKind === 'fixed' || (periodDays.length > 0 && Number(periodDays) > 0)); return ( - + + Create Subscription Plan diff --git a/webapp/src/components/plan/plan-card.tsx b/webapp/src/components/plan/plan-card.tsx index e30eab8..9335042 100644 --- a/webapp/src/components/plan/plan-card.tsx +++ b/webapp/src/components/plan/plan-card.tsx @@ -153,7 +153,7 @@ function EditPlanDialog({ (endTsComputed === 0 || blockTime !== undefined); return ( - + Edit Plan: {meta.n || 'Unnamed'} diff --git a/webapp/src/components/time-travel/time-travel-button.tsx b/webapp/src/components/time-travel/time-travel-button.tsx index d5f4155..9463cbc 100644 --- a/webapp/src/components/time-travel/time-travel-button.tsx +++ b/webapp/src/components/time-travel/time-travel-button.tsx @@ -147,7 +147,7 @@ function TimeTravelButtonInner() { }; return ( - +