From 3ed5a47a83b049e698b339b09c5c17ec31fd9e05 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Sat, 16 Mar 2024 10:47:10 -0700 Subject: [PATCH] Content menu on entire sidebar --- src-web/components/Sidebar.tsx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src-web/components/Sidebar.tsx b/src-web/components/Sidebar.tsx index b197bf86..26d3d99c 100644 --- a/src-web/components/Sidebar.tsx +++ b/src-web/components/Sidebar.tsx @@ -419,6 +419,19 @@ export function Sidebar({ className }: Props) { ], ); + const [showMainContextMenu, setShowMainContextMenu] = useState<{ + x: number; + y: number; + } | null>(null); + + const handleMainContextMenu = useCallback((e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + setShowMainContextMenu({ x: e.clientX, y: e.clientY }); + }, []); + + const mainContextMenuItems = useCreateDropdownItems(); + // Not ready to render yet if (tree == null || collapsed.value == null) { return null; @@ -431,11 +444,17 @@ export function Sidebar({ className }: Props) { onFocus={handleFocus} onBlur={handleBlur} tabIndex={hidden ? -1 : 0} + onContextMenu={handleMainContextMenu} className={classNames( className, 'h-full pb-3 overflow-y-scroll overflow-x-visible hide-scrollbars pt-2', )} > + setShowMainContextMenu(null)} + />