From ebf412b9df9354412a21c80f3906013ebce3290e Mon Sep 17 00:00:00 2001 From: sagit <36596628+Sagit-chu@users.noreply.github.com> Date: Sat, 4 Apr 2026 19:34:40 +0800 Subject: [PATCH] fix(ui): mobile modal scroll behavior (#412) * docs: add announcement popup design spec * docs: add announcement popup implementation plan * fix(ui): change modal scroll behavior to inside for mobile screens Fixes layout issue where modal footer and action buttons are pushed off screen on mobile devices. --- vite-frontend/src/layouts/admin.tsx | 2 +- vite-frontend/src/pages/dashboard.tsx | 2 +- vite-frontend/src/pages/forward.tsx | 10 +++++----- vite-frontend/src/pages/limit.tsx | 4 ++-- vite-frontend/src/pages/node.tsx | 12 ++++++------ vite-frontend/src/pages/profile.tsx | 2 +- vite-frontend/src/pages/tunnel.tsx | 4 ++-- vite-frontend/src/pages/user.tsx | 14 +++++++------- 8 files changed, 25 insertions(+), 25 deletions(-) diff --git a/vite-frontend/src/layouts/admin.tsx b/vite-frontend/src/layouts/admin.tsx index a1701ff..d87bcd3 100644 --- a/vite-frontend/src/layouts/admin.tsx +++ b/vite-frontend/src/layouts/admin.tsx @@ -662,7 +662,7 @@ export default function AdminLayout({ }} isOpen={isOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onOpenChange={() => { onOpenChange(); diff --git a/vite-frontend/src/pages/dashboard.tsx b/vite-frontend/src/pages/dashboard.tsx index 713715f..a174c35 100644 --- a/vite-frontend/src/pages/dashboard.tsx +++ b/vite-frontend/src/pages/dashboard.tsx @@ -1103,7 +1103,7 @@ export default function DashboardPage() { backdrop="blur" isOpen={addressModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={() => setAddressModalOpen(false)} > diff --git a/vite-frontend/src/pages/forward.tsx b/vite-frontend/src/pages/forward.tsx index bd85489..54872e2 100644 --- a/vite-frontend/src/pages/forward.tsx +++ b/vite-frontend/src/pages/forward.tsx @@ -4702,7 +4702,7 @@ export default function ForwardPage() { }} isOpen={modalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onOpenChange={setModalOpen} > @@ -4917,7 +4917,7 @@ export default function ForwardPage() { }} isOpen={deleteModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onOpenChange={setDeleteModalOpen} > @@ -4962,7 +4962,7 @@ export default function ForwardPage() { base: "!w-[calc(100%-32px)] !mx-auto sm:!w-full rounded-2xl overflow-hidden", }} isOpen={addressModalOpen} - scrollBehavior="outside" + scrollBehavior="inside" size="lg" onClose={() => setAddressModalOpen(false)} > @@ -5007,7 +5007,7 @@ export default function ForwardPage() { }} isOpen={exportModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={() => { setExportModalOpen(false); @@ -5166,7 +5166,7 @@ export default function ForwardPage() { }} isOpen={importModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={() => setImportModalOpen(false)} > diff --git a/vite-frontend/src/pages/limit.tsx b/vite-frontend/src/pages/limit.tsx index f22e074..d2103da 100644 --- a/vite-frontend/src/pages/limit.tsx +++ b/vite-frontend/src/pages/limit.tsx @@ -432,7 +432,7 @@ export default function LimitPage() { }} isOpen={modalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onOpenChange={setModalOpen} > @@ -510,7 +510,7 @@ export default function LimitPage() { }} isOpen={deleteModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onOpenChange={setDeleteModalOpen} > diff --git a/vite-frontend/src/pages/node.tsx b/vite-frontend/src/pages/node.tsx index ac186d6..68cec84 100644 --- a/vite-frontend/src/pages/node.tsx +++ b/vite-frontend/src/pages/node.tsx @@ -2410,7 +2410,7 @@ export default function NodePage() { }} isOpen={dialogVisible} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={() => setDialogVisible(false)} > @@ -2831,7 +2831,7 @@ export default function NodePage() { }} isOpen={rollbackModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onOpenChange={setRollbackModalOpen} > @@ -2872,7 +2872,7 @@ export default function NodePage() { }} isOpen={deleteModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onOpenChange={setDeleteModalOpen} > @@ -2968,7 +2968,7 @@ export default function NodePage() { }} isOpen={installCommandModal} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={() => setInstallCommandModal(false)} > @@ -3025,7 +3025,7 @@ export default function NodePage() { }} isOpen={upgradeModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="md" onOpenChange={setUpgradeModalOpen} > @@ -3131,7 +3131,7 @@ export default function NodePage() { }} isOpen={batchDeleteModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="md" onOpenChange={setBatchDeleteModalOpen} > diff --git a/vite-frontend/src/pages/profile.tsx b/vite-frontend/src/pages/profile.tsx index 86a2ada..2197672 100644 --- a/vite-frontend/src/pages/profile.tsx +++ b/vite-frontend/src/pages/profile.tsx @@ -332,7 +332,7 @@ export default function ProfilePage() { }} isOpen={isOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onOpenChange={() => { onOpenChange(); diff --git a/vite-frontend/src/pages/tunnel.tsx b/vite-frontend/src/pages/tunnel.tsx index 305fc4a..2cb43e1 100644 --- a/vite-frontend/src/pages/tunnel.tsx +++ b/vite-frontend/src/pages/tunnel.tsx @@ -2005,7 +2005,7 @@ export default function TunnelPage() { }} isOpen={modalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onOpenChange={setModalOpen} > @@ -2942,7 +2942,7 @@ export default function TunnelPage() { }} isOpen={deleteModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onOpenChange={handleDeleteModalOpenChange} > diff --git a/vite-frontend/src/pages/user.tsx b/vite-frontend/src/pages/user.tsx index 08844da..4573ac0 100644 --- a/vite-frontend/src/pages/user.tsx +++ b/vite-frontend/src/pages/user.tsx @@ -1455,7 +1455,7 @@ export default function UserPage() { }} isOpen={isUserModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={onUserModalClose} > @@ -1698,7 +1698,7 @@ export default function UserPage() { isDismissable={false} isOpen={isTunnelModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={onTunnelModalClose} > @@ -2035,7 +2035,7 @@ export default function UserPage() { isDismissable={false} isOpen={isEditTunnelModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={onEditTunnelModalClose} > @@ -2215,7 +2215,7 @@ export default function UserPage() { }} isOpen={isDeleteModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={onDeleteModalClose} > @@ -2261,7 +2261,7 @@ export default function UserPage() { }} isOpen={isDeleteTunnelModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={onDeleteTunnelModalClose} > @@ -2309,7 +2309,7 @@ export default function UserPage() { }} isOpen={isResetFlowModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={onResetFlowModalClose} > @@ -2401,7 +2401,7 @@ export default function UserPage() { }} isOpen={isResetTunnelFlowModalOpen} placement="center" - scrollBehavior="outside" + scrollBehavior="inside" size="2xl" onClose={onResetTunnelFlowModalClose} >