From 50be154dc4298482aa4cacbed21b5c5bbff41ae1 Mon Sep 17 00:00:00 2001 From: Chad Curtis Date: Sat, 28 Feb 2026 03:22:34 -0600 Subject: [PATCH] Fix mobile drawer More list overflowing viewport by rendering inline --- src/components/MobileDrawer.tsx | 1 + src/components/SidebarMoreMenu.tsx | 52 +++++++++++++++++++++++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/src/components/MobileDrawer.tsx b/src/components/MobileDrawer.tsx index cbfd5017..debd1a42 100644 --- a/src/components/MobileDrawer.tsx +++ b/src/components/MobileDrawer.tsx @@ -164,6 +164,7 @@ export function MobileDrawer({ open, onOpenChange }: MobileDrawerProps) { onNavigate={handleClose} open={moreMenuOpen} onOpenChange={setMoreMenuOpen} + inline /> diff --git a/src/components/SidebarMoreMenu.tsx b/src/components/SidebarMoreMenu.tsx index d88fdf98..1beb98be 100644 --- a/src/components/SidebarMoreMenu.tsx +++ b/src/components/SidebarMoreMenu.tsx @@ -16,10 +16,12 @@ interface SidebarMoreMenuProps { onNavigate?: () => void; open: boolean; onOpenChange: (open: boolean) => void; + /** Render items inline (no portal dropdown) — use inside scrollable containers like the mobile drawer */ + inline?: boolean; } export function SidebarMoreMenu({ - editing, hiddenItems, onDoneEditing, onStartEditing, onAdd, onNavigate, open, onOpenChange, + editing, hiddenItems, onDoneEditing, onStartEditing, onAdd, onNavigate, open, onOpenChange, inline, }: SidebarMoreMenuProps) { if (editing) { return ( @@ -33,6 +35,54 @@ export function SidebarMoreMenu({ ); } + if (inline) { + return ( +
+ {/* Toggle button */} + + + {/* Inline expanded list */} + {open && ( +
+ {hiddenItems.map((item) => ( +
+ { onOpenChange(false); onNavigate?.(); }} + className="flex items-center gap-3 flex-1 min-w-0 px-2 py-2 rounded-sm text-sm hover:bg-secondary/60 transition-colors" + > + {sidebarItemIcon(item.id, 'size-5 shrink-0')} + {item.label} + + +
+ ))} + {hiddenItems.length > 0 &&
} + +
+ )} +
+ ); + } + return (