diff --git a/web/src/components/MemoEditor/Toolbar/InsertMenu.tsx b/web/src/components/MemoEditor/Toolbar/InsertMenu.tsx index d960e999f..f7433ee57 100644 --- a/web/src/components/MemoEditor/Toolbar/InsertMenu.tsx +++ b/web/src/components/MemoEditor/Toolbar/InsertMenu.tsx @@ -13,6 +13,7 @@ import { DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, + useDropdownMenuSubHoverDelay, } from "@/components/ui/dropdown-menu"; import type { Location, MemoRelation } from "@/types/proto/api/v1/memo_service_pb"; import { useTranslate } from "@/utils/i18n"; @@ -35,10 +36,13 @@ const InsertMenu = observer((props: Props) => { const [linkDialogOpen, setLinkDialogOpen] = useState(false); const [locationDialogOpen, setLocationDialogOpen] = useState(false); + const [moreSubmenuOpen, setMoreSubmenuOpen] = useState(false); // Abort controller for canceling geocoding requests const { abort: abortGeocoding, abortAndCreate: createGeocodingSignal } = useAbortController(); + const { handleTriggerEnter, handleTriggerLeave, handleContentEnter, handleContentLeave } = useDropdownMenuSubHoverDelay(150, setMoreSubmenuOpen); + const { fileInputRef, selectingFlag, handleFileInputChange, handleUploadClick } = useFileUpload((newFiles: LocalFile[]) => { if (context.addLocalFiles) { context.addLocalFiles(newFiles); @@ -138,7 +142,7 @@ const InsertMenu = observer((props: Props) => { return ( <> - +