diff --git a/packages/nc-gui/composables/useSharedView.ts b/packages/nc-gui/composables/useSharedView.ts index 2ef25903ca..887d15420d 100644 --- a/packages/nc-gui/composables/useSharedView.ts +++ b/packages/nc-gui/composables/useSharedView.ts @@ -3,10 +3,7 @@ import { UITypes } from 'nocodb-sdk' import { computed, useGlobal, useMetas, useNuxtApp, useState } from '#imports' export function useSharedView() { - const nestedFilters = useState<(FilterType & { status?: 'update' | 'delete' | 'create'; parentId?: string })[]>( - 'nestedFilters', - () => [], - ) + const nestedFilters = ref<(FilterType & { status?: 'update' | 'delete' | 'create'; parentId?: string })[]>([]) const { appInfo } = $(useGlobal()) @@ -16,7 +13,7 @@ export function useSharedView() { const sharedView = useState('sharedView', () => undefined) - const sorts = useState('sorts', () => []) + const sorts = ref([]) const password = useState('password', () => undefined) @@ -64,7 +61,7 @@ export function useSharedView() { Object.keys(relatedMetas).forEach((key) => setMeta(relatedMetas[key])) } - const fetchSharedViewData = async () => { + const fetchSharedViewData = async ({ sortsArr, filtersArr }: { sortsArr: SortType[]; filtersArr: FilterType[] }) => { if (!sharedView.value) return const page = paginationData.value.page || 1 @@ -74,8 +71,8 @@ export function useSharedView() { sharedView.value.uuid!, { offset: (page - 1) * pageSize, - filterArrJson: JSON.stringify(nestedFilters.value), - sortArrJson: JSON.stringify(sorts.value), + filterArrJson: JSON.stringify(filtersArr ?? nestedFilters.value), + sortArrJson: JSON.stringify(sortsArr ?? sorts.value), } as any, { headers: { diff --git a/packages/nc-gui/composables/useViewData.ts b/packages/nc-gui/composables/useViewData.ts index 774f99434e..b3cbffe80d 100644 --- a/packages/nc-gui/composables/useViewData.ts +++ b/packages/nc-gui/composables/useViewData.ts @@ -180,7 +180,7 @@ export function useViewData( ...(isUIAllowed('filterSync') ? {} : { filterArrJson: JSON.stringify(nestedFilters.value) }), where: where?.value, }) - : await fetchSharedViewData() + : await fetchSharedViewData({ sortsArr: sorts.value, filtersArr: nestedFilters.value }) formattedData.value = formatData(response.list) paginationData.value = response.pageInfo if (viewMeta.value?.type === ViewTypes.GRID) { @@ -271,7 +271,10 @@ export function useViewData( async function changePage(page: number) { paginationData.value.page = page - await loadData({ offset: (page - 1) * (paginationData.value.pageSize || appInfoDefaultLimit), where: where?.value } as any) + await loadData({ + offset: (page - 1) * (paginationData.value.pageSize || appInfoDefaultLimit), + where: where?.value, + } as any) $e('a:grid:pagination') }