From a4bdce3444522225870c80ccb94d0e60c0687ac7 Mon Sep 17 00:00:00 2001 From: Dennis Collaris <d.a.c.collaris@uu.nl> Date: Thu, 14 Nov 2024 14:34:02 +0000 Subject: [PATCH] fix: fixed bug that newly created projects cannot be edited until reload --- apps/web/src/app/App.tsx | 2 +- apps/web/src/components/navbar/navbar.tsx | 2 +- libs/shared/lib/data-access/store/sessionSlice.ts | 9 ++++++++- libs/shared/lib/vis/components/VisualizationTabBar.tsx | 4 ++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/web/src/app/App.tsx b/apps/web/src/app/App.tsx index 6770b4382..dfa03165b 100644 --- a/apps/web/src/app/App.tsx +++ b/apps/web/src/app/App.tsx @@ -141,7 +141,7 @@ export function App(props: App) { </div> <FrozenOverlay> {!auth.authentication?.authenticated && <span>Not Authenticated</span>} - {!auth.authorization.savestate.W && !session.currentSaveState && ( + {!auth.authorization.savestate?.W && !session.currentSaveState && ( <span>Viewer account not authorized. Please load a shared exploration.</span> )} </FrozenOverlay> diff --git a/apps/web/src/components/navbar/navbar.tsx b/apps/web/src/components/navbar/navbar.tsx index a93578f0e..046b545d4 100644 --- a/apps/web/src/components/navbar/navbar.tsx +++ b/apps/web/src/components/navbar/navbar.tsx @@ -75,7 +75,7 @@ export const Navbar = () => { /> </FeatureEnabled> <FeatureEnabled featureFlag="VIEWER_PERMISSIONS"> - {authCache.authorization?.savestate?.W && authorization.database.W && ( + {authCache.authorization?.savestate?.W && authorization.database?.W && ( <DropdownItem value="Viewer Permissions" onClick={() => { diff --git a/libs/shared/lib/data-access/store/sessionSlice.ts b/libs/shared/lib/data-access/store/sessionSlice.ts index 650e0e629..b1d84da89 100644 --- a/libs/shared/lib/data-access/store/sessionSlice.ts +++ b/libs/shared/lib/data-access/store/sessionSlice.ts @@ -27,6 +27,13 @@ const defaultStateAuthorizationHeaders: SaveStateAuthorizationHeaders = { schema: { W: false, R: false }, }; +const newStateAuthorizationHeaders: SaveStateAuthorizationHeaders = { + query: { W: true, R: true }, + database: { W: true, R: true }, + visualization: { W: true, R: true }, + schema: { W: true, R: true }, +}; + // Define the initial state using that type export const initialState: SessionCacheI = { currentSaveState: undefined, @@ -91,7 +98,7 @@ export const sessionSlice = createSlice({ state.saveStates[action.payload.id] = action.payload; state.currentSaveState = action.payload.id; if (!state.saveStatesAuthorization[action.payload.id]) { - state.saveStatesAuthorization[action.payload.id] = cloneDeep(defaultStateAuthorizationHeaders); + state.saveStatesAuthorization[action.payload.id] = cloneDeep(newStateAuthorizationHeaders); } }, deleteSaveState: (state: SessionCacheI, action: PayloadAction<string>) => { diff --git a/libs/shared/lib/vis/components/VisualizationTabBar.tsx b/libs/shared/lib/vis/components/VisualizationTabBar.tsx index 0cd76eaa1..cbb83bf88 100644 --- a/libs/shared/lib/vis/components/VisualizationTabBar.tsx +++ b/libs/shared/lib/vis/components/VisualizationTabBar.tsx @@ -75,7 +75,7 @@ export default function VisualizationTabBar(props: { fullSize: () => void; expor <Button variantType="secondary" variant="ghost" - disabled={!saveStateAuthorization.database.W} + disabled={!saveStateAuthorization.database?.W} rounded size="2xs" iconComponent="icon-[ic--baseline-close]" @@ -93,7 +93,7 @@ export default function VisualizationTabBar(props: { fullSize: () => void; expor <Tooltip> <TooltipTrigger> <DropdownContainer open={open} onOpenChange={setOpen}> - <DropdownTrigger disabled={!saveStateAuthorization.database.W} onClick={() => setOpen((v) => !v)}> + <DropdownTrigger disabled={!saveStateAuthorization.database?.W} onClick={() => setOpen((v) => !v)}> <Button as={'a'} variantType="secondary" -- GitLab