From 270be1bdd63f7d45eba82e77dce4182b36631126 Mon Sep 17 00:00:00 2001 From: Daniel Spaude Date: Sat, 14 Jan 2023 12:22:03 +0100 Subject: [PATCH] mobile optimisations - work on merging right and left sidebar (WIP) --- .../components/smartsheet/sidebar/index.vue | 4 ++-- .../components/smartsheet/sidebar/mobile.vue | 4 ++-- packages/nc-gui/composables/useViews.ts | 16 +++++++++++++++- .../pages/[projectType]/[projectId]/index.vue | 2 ++ 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/sidebar/index.vue b/packages/nc-gui/components/smartsheet/sidebar/index.vue index 29b3eb6bcd..86da8b0a53 100644 --- a/packages/nc-gui/components/smartsheet/sidebar/index.vue +++ b/packages/nc-gui/components/smartsheet/sidebar/index.vue @@ -13,7 +13,7 @@ import { useRouter, useSidebar, useUIPermission, - useViews, + useViewsStoreOrThrow, watch, } from '#imports' @@ -23,7 +23,7 @@ const activeView = inject(ActiveViewInj, ref()) const { activeTab } = useTabs() -const { views, loadViews, isLoading } = useViews(meta) +const { views, loadViews, isLoading } = useViewsStoreOrThrow() const { lastOpenedViewMap } = useProject() diff --git a/packages/nc-gui/components/smartsheet/sidebar/mobile.vue b/packages/nc-gui/components/smartsheet/sidebar/mobile.vue index 9befb469cd..64098a6e20 100644 --- a/packages/nc-gui/components/smartsheet/sidebar/mobile.vue +++ b/packages/nc-gui/components/smartsheet/sidebar/mobile.vue @@ -13,7 +13,7 @@ import { useRouter, useSidebar, useUIPermission, - useViews, + useViewsStoreOrThrow, watch, } from '#imports' @@ -25,7 +25,7 @@ const activeView = inject(ActiveViewInj, ref()) const { activeTab } = useTabs() -const { views, loadViews, isLoading } = useViews(meta) +const { views, loadViews, isLoading } = useViewsStoreOrThrow() const { lastOpenedViewMap } = useProject() diff --git a/packages/nc-gui/composables/useViews.ts b/packages/nc-gui/composables/useViews.ts index e1e199355d..2dc5c460f2 100644 --- a/packages/nc-gui/composables/useViews.ts +++ b/packages/nc-gui/composables/useViews.ts @@ -2,13 +2,17 @@ import type { TableType, ViewType } from 'nocodb-sdk' import type { MaybeRef } from '@vueuse/core' import { ref, unref, useNuxtApp, watch } from '#imports' -export function useViews(meta: MaybeRef) { +const [useProvideViewsStore, useViewsStore] = useInjectionState((meta: MaybeRef) => { + // debugger + // console.log('--------------------useViews--------------------') + // console.trace() const views = ref([]) const isLoading = ref(false) const { $api } = useNuxtApp() const loadViews = async () => { + // debugger isLoading.value = true const _meta = unref(meta) @@ -25,4 +29,14 @@ export function useViews(meta: MaybeRef) { watch(() => unref(meta), loadViews, { immediate: true }) return { views, isLoading, loadViews } +}, 'views-store') + +export { useProvideViewsStore } + +export function useViewsStoreOrThrow() { + const viewsStore = useViewsStore() + + if (viewsStore == null) throw new Error('Please call `useProvideViewsStore` on the appropriate parent component') + + return viewsStore } diff --git a/packages/nc-gui/pages/[projectType]/[projectId]/index.vue b/packages/nc-gui/pages/[projectType]/[projectId]/index.vue index 8ec9bbff58..537bb669b4 100644 --- a/packages/nc-gui/pages/[projectType]/[projectId]/index.vue +++ b/packages/nc-gui/pages/[projectType]/[projectId]/index.vue @@ -77,6 +77,8 @@ const meta = computed(() => activeTab.value && metas.valu provide(ActiveViewInj, activeView) provide(MetaInj, meta) +useProvideViewsStore(meta) + const showViewsMobileSidebar = ref(false) /** Sidebar ref */