diff --git a/packages/nc-gui/composables/useProject.ts b/packages/nc-gui/composables/useProject.ts index c412e25f8c..f5b728d4f0 100644 --- a/packages/nc-gui/composables/useProject.ts +++ b/packages/nc-gui/composables/useProject.ts @@ -42,8 +42,6 @@ const [setup, use] = useInjectionState((_projectId?: MaybeRef) => { const projectId = computed(() => (_projectId ? unref(_projectId) : (route.params.projectId as string))) - const projectAndTablesLoaded = ref(false) - // todo: refactor path param name and variable name const projectType = $computed(() => route.params.projectType as string) @@ -95,7 +93,6 @@ const [setup, use] = useInjectionState((_projectId?: MaybeRef) => { } async function loadTables() { - projectAndTablesLoaded.value = false if (project.value.id) { const tablesResponse = await api.dbTable.list(project.value.id, { includeM2M: includeM2M.value, @@ -103,11 +100,9 @@ const [setup, use] = useInjectionState((_projectId?: MaybeRef) => { if (tablesResponse.list) tables.value = tablesResponse.list } - projectAndTablesLoaded.value = true } async function loadProject(id?: string) { - projectAndTablesLoaded.value = false if (id) { project.value = await api.project.read(projectId.value) } else if (projectType === 'base') { @@ -133,8 +128,6 @@ const [setup, use] = useInjectionState((_projectId?: MaybeRef) => { setTheme(projectMeta.value?.theme) projectLoadedHook.trigger(project.value) - - projectAndTablesLoaded.value = true } async function updateProject(data: Partial) { @@ -203,7 +196,6 @@ const [setup, use] = useInjectionState((_projectId?: MaybeRef) => { projectLoadedHook: projectLoadedHook.on, reset, isLoading, - projectAndTablesLoaded, } }, 'useProject') diff --git a/packages/nc-gui/pages/[projectType]/[projectId]/index/index/[type]/[title]/[[viewTitle]].vue b/packages/nc-gui/pages/[projectType]/[projectId]/index/index/[type]/[title]/[[viewTitle]].vue index 18b4da43fe..bce21e4123 100644 --- a/packages/nc-gui/pages/[projectType]/[projectId]/index/index/[type]/[title]/[[viewTitle]].vue +++ b/packages/nc-gui/pages/[projectType]/[projectId]/index/index/[type]/[title]/[[viewTitle]].vue @@ -4,7 +4,7 @@ import { TabMetaInj } from '#imports' const { getMeta } = useMetas() -const { project, projectLoadedHook, projectAndTablesLoaded } = useProject() +const { tables } = useProject() const route = useRoute() @@ -15,11 +15,12 @@ const activeTab = inject( computed(() => ({} as TabItem)), ) -/** wait until project and table loads since meta load requires table list **/ +/** wait until table list loads since meta load requires table list **/ watch( - projectAndTablesLoaded, + () => tables.value.length, (nextVal) => { if (!nextVal) return + getMeta(route.params.title as string, true).finally(() => (loading.value = false)) loading.value = false },