@@ -5,7 +5,6 @@ import { useCallback, useMemo } from 'react';
55import { v4 as uuidv4 } from 'uuid' ;
66import * as Y from 'yjs' ;
77
8- import { Log } from '@/utils/log' ;
98import {
109 useCreateRow ,
1110 useDatabase ,
@@ -76,8 +75,9 @@ import {
7675 YSharedRoot ,
7776} from '@/application/types' ;
7877import { DefaultTimeSetting } from '@/application/user-metadata' ;
79- import { applyYDoc } from '@/application/ydoc/apply' ;
8078import { isDatabaseContainer } from '@/application/view-utils' ;
79+ import { applyYDoc } from '@/application/ydoc/apply' ;
80+ import { Log } from '@/utils/log' ;
8181
8282export function useResizeColumnWidthDispatch ( ) {
8383 const database = useDatabase ( ) ;
@@ -3455,18 +3455,40 @@ export function useAddFilter() {
34553455
34563456 return useCallback (
34573457 ( fieldId : string ) => {
3458- if ( ! view ) return ;
3458+ Log . debug ( '[useAddFilter] Creating filter' , { fieldId } ) ;
3459+
3460+ // Guard: Don't create filter if fieldId is missing or empty
3461+ if ( ! view || ! fieldId || fieldId . trim ( ) === '' ) {
3462+ Log . warn ( '[useAddFilter] Skipping filter creation: view or fieldId is missing' , {
3463+ hasView : ! ! view ,
3464+ fieldId,
3465+ } ) ;
3466+ return ;
3467+ }
3468+
34593469 const id = `${ nanoid ( 6 ) } ` ;
34603470
3471+ Log . debug ( '[useAddFilter] Generated filter id' , { filterId : id , fieldId } ) ;
3472+
34613473 executeOperations (
34623474 sharedRoot ,
34633475 [
34643476 ( ) => {
34653477 const field = fields . get ( fieldId ) ;
3478+
3479+ if ( ! field ) {
3480+ Log . warn ( '[useAddFilter] Field not found for fieldId:' , fieldId ) ;
3481+ return ;
3482+ }
3483+
34663484 const fieldType = Number ( field . get ( YjsDatabaseKey . type ) ) ;
3485+
3486+ Log . debug ( '[useAddFilter] Field info' , { fieldId, fieldType } ) ;
3487+
34673488 let filters = view . get ( YjsDatabaseKey . filters ) ;
34683489
34693490 if ( ! filters ) {
3491+ Log . debug ( '[useAddFilter] Creating new filters array' ) ;
34703492 filters = new Y . Array ( ) as YDatabaseFilters ;
34713493 view . set ( YjsDatabaseKey . filters , filters ) ;
34723494 }
@@ -3477,7 +3499,18 @@ export function useAddFilter() {
34773499 filter . set ( YjsDatabaseKey . field_id , fieldId ) ;
34783500 const conditionData = getDefaultFilterCondition ( fieldType ) ;
34793501
3480- if ( ! conditionData ) return ;
3502+ if ( ! conditionData ) {
3503+ Log . warn ( '[useAddFilter] No default condition for fieldType:' , fieldType ) ;
3504+ return ;
3505+ }
3506+
3507+ Log . debug ( '[useAddFilter] Setting filter data' , {
3508+ filterId : id ,
3509+ fieldId,
3510+ fieldType,
3511+ condition : conditionData . condition ,
3512+ content : conditionData . content ,
3513+ } ) ;
34813514
34823515 filter . set ( YjsDatabaseKey . condition , conditionData . condition ) ;
34833516 if ( conditionData . content !== undefined ) {
@@ -3488,6 +3521,8 @@ export function useAddFilter() {
34883521 filter . set ( YjsDatabaseKey . filter_type , FilterType . Data ) ;
34893522
34903523 filters . push ( [ filter ] ) ;
3524+
3525+ Log . debug ( '[useAddFilter] Filter created successfully' , { filterId : id , filter : filter . toJSON ( ) } ) ;
34913526 } ,
34923527 ] ,
34933528 'addFilter'
@@ -3565,10 +3600,13 @@ export function useUpdateFilter() {
35653600 return ;
35663601 }
35673602
3568- if ( fieldId ) {
3569- filter . set ( YjsDatabaseKey . field_id , fieldId ) ;
3603+ if ( ! fieldId ) {
3604+ Log . warn ( '[useUpdateFilter] FieldId is missing' ) ;
3605+ return ;
35703606 }
35713607
3608+ filter . set ( YjsDatabaseKey . field_id , fieldId ) ;
3609+
35723610 if ( condition !== undefined ) {
35733611 filter . set ( YjsDatabaseKey . condition , condition ) ;
35743612 }
0 commit comments