fix: replace disableAutoLoad with isTempFilters in ColumnFilter components and fix realtime related issues

This commit is contained in:
Pranav C
2026-01-21 09:59:21 +00:00
parent 637822714c
commit 9f1272f14b
3 changed files with 14 additions and 16 deletions

View File

@@ -38,8 +38,7 @@ interface Props {
readOnly?: boolean
queryFilter?: boolean
isColourFilter?: boolean
allowLockedLocalEdit?: boolean
disableAutoLoad?: boolean
isTempFilters?: boolean
}
const props = withDefaults(defineProps<Props>(), {
@@ -63,8 +62,7 @@ const props = withDefaults(defineProps<Props>(), {
isViewFilter: false,
readOnly: false,
isColourFilter: false,
allowLockedLocalEdit: false,
disableAutoLoad: false,
isTempFilters: false,
})
const emit = defineEmits([
@@ -195,7 +193,7 @@ const {
linkColId,
fieldsToFilter,
parentColId,
props.disableAutoLoad,
props.isTempFilters,
)
const { getPlanLimit } = useWorkspace()
@@ -509,7 +507,7 @@ onMounted(async () => {
await Promise.all([
(async () => {
if (!props.disableAutoLoad && !initialModelValue?.length)
if (!props.isTempFilters && !initialModelValue?.length)
await loadFilters({
hookId: hookId?.value,
isWebhook: webHook.value,
@@ -904,6 +902,7 @@ defineExpose({
:disable-add-new-filter="disableAddNewFilter"
:is-view-filter="isViewFilter"
:read-only="readOnly"
:is-temp-filters="isTempFilters"
>
<template #start>
<span v-if="!visibleFilters.indexOf(filter)" class="flex items-center nc-filter-where-label ml-1">{{

View File

@@ -51,7 +51,7 @@ watch(
await loadFilters({
hookId: undefined,
isWebhook: false,
loadAllFilters: false,
loadAllFilters: true,
})
filtersLength.value = nonDeletedFilters.value.length || 0
}
@@ -317,8 +317,7 @@ watch(
:auto-save="false"
data-testid="nc-filter-menu"
:is-view-filter="false"
:allow-locked-local-edit="true"
:disable-auto-load="true"
:is-temp-filters="true"
>
</SmartsheetToolbarColumnFilter>
</template>

View File

@@ -38,7 +38,7 @@ export function useViewFilters(
linkColId?: Ref<string>,
fieldsToFilter?: Ref<ColumnType[]>,
parentColId?: Ref<string>,
disableAutoLoad?: boolean,
isTempFilters?: boolean,
) {
const savingStatus: Record<number, boolean> = {}
@@ -63,7 +63,7 @@ export function useViewFilters(
const isPublic = inject(IsPublicInj, ref(false))
const isTempFilters = computed(() => isPublic.value || disableAutoLoad)
const isTemp = computed(() => isPublic.value || isTempFilters)
const { $api, $e, $eventBus } = useNuxtApp()
@@ -77,7 +77,7 @@ export function useViewFilters(
const _filters = ref<ColumnFilterType[]>([...(currentFilters.value || [])])
const nestedMode = computed(() => isTempFilters.value || !isUIAllowed('filterList') || !isUIAllowed('filterChildrenList'))
const nestedMode = computed(() => isTemp.value || !isUIAllowed('filterList') || !isUIAllowed('filterChildrenList'))
// Tracks if any filter has been updated - used for webhook save state management
const isFilterUpdated = ref<boolean>(false)
@@ -378,7 +378,7 @@ export function useViewFilters(
} = {}) => {
if (!view.value?.id || !meta.value) return
if (
(nestedMode.value && (isTempFilters.value || !isUIAllowed('filterChildrenList'))) ||
(nestedMode.value && (isTemp.value || !isUIAllowed('filterChildrenList'))) ||
(isForm.value && !isWebhook) ||
isWorkflow
) {
@@ -1079,7 +1079,7 @@ export function useViewFilters(
}
const evtListener = (evt: string, payload: any) => {
if (payload.fk_view_id !== view.value?.id || disableAutoLoad) return
if (payload.fk_view_id !== view.value?.id || isTempFilters) return
if (evt === 'filter_create') {
allFilters.value.push(payload)
@@ -1112,11 +1112,11 @@ export function useViewFilters(
}
onMounted(() => {
$eventBus.realtimeViewMetaEventBus.on(evtListener)
if (!isTempFilters) $eventBus.realtimeViewMetaEventBus.on(evtListener)
})
onBeforeUnmount(() => {
$eventBus.realtimeViewMetaEventBus.off(evtListener)
if (!isTempFilters) $eventBus.realtimeViewMetaEventBus.off(evtListener)
})
return {