diff --git a/packages/nc-gui/composables/useProject.ts b/packages/nc-gui/composables/useProject.ts index 5aa7b15bb9..676a137cba 100644 --- a/packages/nc-gui/composables/useProject.ts +++ b/packages/nc-gui/composables/useProject.ts @@ -64,6 +64,8 @@ const [setup, use] = useInjectionState((_projectId?: MaybeRef) => { const isPg = computed(() => projectBaseType === 'pg') const isSharedBase = computed(() => projectType === 'base') + const router = useRouter() + async function loadProjectMetaInfo(force?: boolean) { if (!projectMetaInfo.value || force) { projectMetaInfo.value = await api.project.metaGet(project.value.id!, {}, {}) @@ -104,8 +106,15 @@ const [setup, use] = useInjectionState((_projectId?: MaybeRef) => { if (id) { project.value = await api.project.read(projectId.value) } else if (projectType === 'base') { - const baseData = await api.public.sharedBaseGet(route.params.projectId as string) - project.value = await api.project.read(baseData.project_id!) + try { + const baseData = await api.public.sharedBaseGet(route.params.projectId as string) + project.value = await api.project.read(baseData.project_id!) + } catch (e) { + if (e?.response?.status === 404) { + return router.push('/404') + } + throw e + } } else if (projectId.value) { project.value = await api.project.read(projectId.value) } else { diff --git a/packages/nc-gui/pages/404.vue b/packages/nc-gui/pages/404.vue new file mode 100644 index 0000000000..7197e8ef53 --- /dev/null +++ b/packages/nc-gui/pages/404.vue @@ -0,0 +1,14 @@ + + +