From 8a9cd17cd57c1463ee29c634d269f7b8eb4c8f21 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Fri, 28 Feb 2025 09:00:25 -0600 Subject: [PATCH] Leave admin menu up while choosing files --- src/admin/AdminAppMenu.tsx | 8 +++++++- src/state/AppState.ts | 2 +- src/state/AppStateProvider.tsx | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/admin/AdminAppMenu.tsx b/src/admin/AdminAppMenu.tsx index 0865af27..1c142d8b 100644 --- a/src/admin/AdminAppMenu.tsx +++ b/src/admin/AdminAppMenu.tsx @@ -51,7 +51,13 @@ export default function AdminAppMenu({ size={15} className="translate-x-[0.5px] translate-y-[0.5px]" />, - action: startUpload, + action: () => new Promise(resolve => { + if (startUpload) { + startUpload(() => resolve()); + } else { + resolve(); + } + }), }, { label: 'Manage Photos', ...photosCountTotal && { diff --git a/src/state/AppState.ts b/src/state/AppState.ts index 4ed162a7..8d329221 100644 --- a/src/state/AppState.ts +++ b/src/state/AppState.ts @@ -23,7 +23,7 @@ export interface AppStateContext { shouldRespondToKeyboardCommands?: boolean setShouldRespondToKeyboardCommands?: Dispatch> // UPLOAD - startUpload?: () => void + startUpload?: (onStart?: () => void) => void uploadInputRef?: RefObject uploadState: UploadState setUploadState?: (uploadState: Partial) => void diff --git a/src/state/AppStateProvider.tsx b/src/state/AppStateProvider.tsx index 07c73742..d93452c5 100644 --- a/src/state/AppStateProvider.tsx +++ b/src/state/AppStateProvider.tsx @@ -90,10 +90,11 @@ export default function AppStateProvider({ const [shouldDebugRecipeOverlays, setShouldDebugRecipeOverlays] = useState(false); - const startUpload = useCallback(() => { + const startUpload = useCallback((onStart?: () => void) => { if (uploadInputRef.current) { uploadInputRef.current.value = ''; uploadInputRef.current.click(); + uploadInputRef.current.oninput = onStart ?? null; } }, []); const setUploadState = useCallback((uploadState: Partial) => { @@ -125,6 +126,8 @@ export default function AppStateProvider({ }, ); + console.log('adminData', adminData); + useEffect(() => { if (userEmail) { storeAuthEmailCookie(userEmail);