From aba85d27bfc73e8eb228be621cf705da6fae7322 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Wed, 10 Jan 2024 09:05:29 +0000 Subject: [PATCH] fix: handle 404 in shared base/view --- packages/nc-gui/store/bases.ts | 37 ++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/packages/nc-gui/store/bases.ts b/packages/nc-gui/store/bases.ts index 4f3e82a3e5..bb470a2003 100644 --- a/packages/nc-gui/store/bases.ts +++ b/packages/nc-gui/store/bases.ts @@ -92,25 +92,32 @@ export const useBases = defineStore('basesStore', () => { const loadProjects = async (page: 'recent' | 'shared' | 'starred' | 'workspace' = 'recent') => { // if shared base then get the shared base and create a list if (route.value.params.typeOrId === 'base' && route.value.params.baseId) { - const { base_id } = await $api.public.sharedBaseGet(route.value.params.baseId as string) - const base: BaseType = await $api.base.read(base_id) + try { + const { base_id } = await $api.public.sharedBaseGet(route.value.params.baseId as string) + const base: BaseType = await $api.base.read(base_id) - if (!base) return + if (!base) return - bases.value = [base].reduce((acc, base) => { - acc.set(base.id!, base) - return acc - }, new Map()) + bases.value = [base].reduce((acc, base) => { + acc.set(base.id!, base) + return acc + }, new Map()) - bases.value.set(base.id!, { - ...(bases.value.get(base.id!) || {}), - ...base, - sources: [...(base.sources ?? bases.value.get(base.id!)?.sources ?? [])], - isExpanded: route.value.params.baseId === base.id || bases.value.get(base.id!)?.isExpanded, - isLoading: false, - }) + bases.value.set(base.id!, { + ...(bases.value.get(base.id!) || {}), + ...base, + sources: [...(base.sources ?? bases.value.get(base.id!)?.sources ?? [])], + isExpanded: route.value.params.baseId === base.id || bases.value.get(base.id!)?.isExpanded, + isLoading: false, + }) - return + return + } catch (e: any) { + if (e?.response?.status === 404) { + return router.push('/error/404') + } + throw e + } } const activeWorkspace = workspaceStore.activeWorkspace