diff --git a/src/features/collections/store/collectionSlice.ts b/src/features/collections/store/collectionSlice.ts index cb77914..14f6a02 100644 --- a/src/features/collections/store/collectionSlice.ts +++ b/src/features/collections/store/collectionSlice.ts @@ -323,13 +323,13 @@ export const createCollection = createAppAsyncThunk< } const fdId = firestoreDatabaseId ?? getActiveFirestoreDatabase(project)?.id; - dispatch( + await dispatch( refreshCollections({ project, refreshToken: project.refreshToken, ...(fdId ? { firestoreDatabaseId: fdId } : {}), }), - ); + ).unwrap(); return trimmedName; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error'; diff --git a/src/features/projects/components/sidebar/SidebarMenu.tsx b/src/features/projects/components/sidebar/SidebarMenu.tsx index 5492944..75946aa 100644 --- a/src/features/projects/components/sidebar/SidebarMenu.tsx +++ b/src/features/projects/components/sidebar/SidebarMenu.tsx @@ -166,12 +166,14 @@ function SidebarMenu({ Firestore - handleAction(onAddFirestoreDatabase, menuTarget.project)}> - - - - Add database - + {menuTarget.project.authMethod !== 'emulator' && ( + handleAction(onAddFirestoreDatabase, menuTarget.project)}> + + + + Add database + + )} ) : menuTarget?.menuType === 'firestoreDatabase' ? ( <> diff --git a/src/features/projects/components/sidebar/SidebarProjectsList.tsx b/src/features/projects/components/sidebar/SidebarProjectsList.tsx index 8d67afc..c23d8f5 100644 --- a/src/features/projects/components/sidebar/SidebarProjectsList.tsx +++ b/src/features/projects/components/sidebar/SidebarProjectsList.tsx @@ -430,18 +430,20 @@ function SidebarProjectsList({ > Firestore - - { - e.stopPropagation(); - onAddFirestoreDatabase(project); - }} - sx={{ p: 0.25, color: 'primary.main' }} - > - - - + {project.authMethod !== 'emulator' && ( + + { + e.stopPropagation(); + onAddFirestoreDatabase(project); + }} + sx={{ p: 0.25, color: 'primary.main' }} + > + + + + )} { @@ -927,18 +929,20 @@ function SidebarProjectsList({ > Firestore - - { - e.stopPropagation(); - onAddFirestoreDatabase(project); - }} - sx={{ p: 0.25, color: 'primary.main' }} - > - - - + {project.authMethod !== 'emulator' && ( + + { + e.stopPropagation(); + onAddFirestoreDatabase(project); + }} + sx={{ p: 0.25, color: 'primary.main' }} + > + + + + )} { @@ -1171,24 +1175,26 @@ function SidebarProjectsList({ ); })} - { - e.stopPropagation(); - onAddFirestoreDatabase(project); - }} - sx={{ - display: 'flex', - alignItems: 'center', - px: 1, - py: 0.5, - cursor: 'pointer', - color: 'primary.main', - '&:hover': { bgcolor: 'action.hover' }, - }} - > - - Add database - + {project.authMethod !== 'emulator' && ( + { + e.stopPropagation(); + onAddFirestoreDatabase(project); + }} + sx={{ + display: 'flex', + alignItems: 'center', + px: 1, + py: 0.5, + cursor: 'pointer', + color: 'primary.main', + '&:hover': { bgcolor: 'action.hover' }, + }} + > + + Add database + + )} @@ -1392,18 +1398,20 @@ function SidebarProjectsList({ > Firestore - - { - e.stopPropagation(); - onAddFirestoreDatabase(project); - }} - sx={{ p: 0.25, color: 'primary.main' }} - > - - - + {project.authMethod !== 'emulator' && ( + + { + e.stopPropagation(); + onAddFirestoreDatabase(project); + }} + sx={{ p: 0.25, color: 'primary.main' }} + > + + + + )} { @@ -1636,24 +1644,26 @@ function SidebarProjectsList({ ); })} - { - e.stopPropagation(); - onAddFirestoreDatabase(project); - }} - sx={{ - display: 'flex', - alignItems: 'center', - px: 1, - py: 0.5, - cursor: 'pointer', - color: 'primary.main', - '&:hover': { bgcolor: 'action.hover' }, - }} - > - - Add database - + {project.authMethod !== 'emulator' && ( + { + e.stopPropagation(); + onAddFirestoreDatabase(project); + }} + sx={{ + display: 'flex', + alignItems: 'center', + px: 1, + py: 0.5, + cursor: 'pointer', + color: 'primary.main', + '&:hover': { bgcolor: 'action.hover' }, + }} + > + + Add database + + )} diff --git a/src/features/projects/store/projectsSlice.ts b/src/features/projects/store/projectsSlice.ts index d219f05..7ee784f 100644 --- a/src/features/projects/store/projectsSlice.ts +++ b/src/features/projects/store/projectsSlice.ts @@ -697,7 +697,9 @@ const projectsSlice = createSlice({ if (item.id === projectId) { const proj = item as Project; if ( - (proj.authMethod === 'serviceAccount' || proj.authMethod === 'google') && + (proj.authMethod === 'serviceAccount' || + proj.authMethod === 'google' || + proj.authMethod === 'emulator') && firestoreDatabaseId && proj.firestoreDatabases?.length ) {