@@ -104,6 +104,8 @@ export function DataFilters({
104
104
const numRowsWeKnowOf = hasFilters ? numRowsLoaded : numRows ;
105
105
106
106
const { enableIndexFilters } = useContext ( DeploymentInfoContext ) ;
107
+ const { useLogDeploymentEvent } = useContext ( DeploymentInfoContext ) ;
108
+ const log = useLogDeploymentEvent ( ) ;
107
109
108
110
return (
109
111
< form
@@ -115,6 +117,13 @@ export function DataFilters({
115
117
if ( hasInvalidFilters ) {
116
118
return ;
117
119
}
120
+ log ( "apply filters" , {
121
+ hasIndexFilters :
122
+ ( shownFilters . index ?. clauses || [ ] ) . filter ( ( c ) => c . enabled )
123
+ . length > 0 ,
124
+ hasOtherFilters :
125
+ shownFilters . clauses . filter ( ( c ) => c . enabled !== false ) . length > 0 ,
126
+ } ) ;
118
127
onChangeFilters (
119
128
draftFilters || {
120
129
clauses : [ ] ,
@@ -249,6 +258,16 @@ export function DataFilters({
249
258
if ( hasInvalidFilters ) {
250
259
return ;
251
260
}
261
+ log ( "apply filters" , {
262
+ hasIndexFilters :
263
+ ( shownFilters . index ?. clauses || [ ] ) . filter (
264
+ ( c ) => c . enabled ,
265
+ ) . length > 0 ,
266
+ hasOtherFilters :
267
+ shownFilters . clauses . filter (
268
+ ( c ) => c . enabled !== false ,
269
+ ) . length > 0 ,
270
+ } ) ;
252
271
onChangeFilters ( shownFilters ) ;
253
272
} }
254
273
onError = { ( ...args ) => onError ( "filter" , ...args ) }
@@ -273,7 +292,10 @@ export function DataFilters({
273
292
size = "xs"
274
293
className = "text-xs"
275
294
icon = { < PlusIcon /> }
276
- onClick = { ( ) => onAddFilter ( shownFilters . clauses . length ) }
295
+ onClick = { ( ) => {
296
+ onAddFilter ( shownFilters . clauses . length ) ;
297
+ log ( "add filter" ) ;
298
+ } }
277
299
>
278
300
Add filter
279
301
</ Button >
@@ -443,6 +465,8 @@ function useDataFilters({
443
465
setDraftFilters ( next : FilterExpression ) : void ;
444
466
activeSchema : SchemaJson | null ;
445
467
} ) {
468
+ const { useLogDeploymentEvent } = useContext ( DeploymentInfoContext ) ;
469
+ const log = useLogDeploymentEvent ( ) ;
446
470
const [ invalidFilters , { set : setInvalidFilters } ] = useMap ( ) ;
447
471
448
472
const isDirty = ! isEqual ( filters , draftFilters ) ;
@@ -473,6 +497,7 @@ function useDataFilters({
473
497
const onChangeFilter = useCallback (
474
498
( filter : FilterState , idx : number ) => {
475
499
const newFilters = cloneDeep ( shownFilters ) ;
500
+ const oldFilter = newFilters . clauses [ idx ] ;
476
501
477
502
// Convert the FilterState to a Filter
478
503
let newFilter : Filter ;
@@ -495,10 +520,33 @@ function useDataFilters({
495
520
} ;
496
521
}
497
522
523
+ // Log filter changes
524
+ if ( oldFilter ) {
525
+ if ( oldFilter . enabled !== filter . enabled ) {
526
+ log ( "filter toggle" , {
527
+ enabled : filter . enabled ,
528
+ filterType : "regular" ,
529
+ filterIndex : idx ,
530
+ } ) ;
531
+ } else if ( oldFilter . op !== filter . op ) {
532
+ log ( "filter operator change" , {
533
+ oldOperator : oldFilter . op ,
534
+ newOperator : filter . op ,
535
+ filterType : "regular" ,
536
+ filterIndex : idx ,
537
+ } ) ;
538
+ } else if ( oldFilter . field !== filter . field ) {
539
+ log ( "filter field change" , {
540
+ filterType : "regular" ,
541
+ filterIndex : idx ,
542
+ } ) ;
543
+ }
544
+ }
545
+
498
546
newFilters . clauses [ idx ] = newFilter ;
499
547
setDraftFilters ( newFilters ) ;
500
548
} ,
501
- [ shownFilters , setDraftFilters ] ,
549
+ [ shownFilters , setDraftFilters , log ] ,
502
550
) ;
503
551
504
552
const onChangeIndexFilter = useCallback (
@@ -507,13 +555,37 @@ function useDataFilters({
507
555
if ( ! newFilters . index ) {
508
556
throw new Error ( "Index not found" ) ;
509
557
}
558
+ const oldFilter = newFilters . index . clauses [ idx ] ;
559
+
560
+ // Log index filter changes
561
+ if ( oldFilter ) {
562
+ if ( oldFilter . enabled !== filter . enabled ) {
563
+ log ( "filter toggle" , {
564
+ enabled : filter . enabled ,
565
+ filterType : "index" ,
566
+ filterIndex : idx ,
567
+ } ) ;
568
+ } else if ( oldFilter . type !== filter . type ) {
569
+ log ( "index filter type change" , {
570
+ oldType : oldFilter . type ,
571
+ newType : filter . type ,
572
+ filterIndex : idx ,
573
+ } ) ;
574
+ }
575
+ }
576
+
510
577
newFilters . index . clauses [ idx ] = filter ;
511
578
setDraftFilters ( newFilters ) ;
512
579
} ,
513
- [ shownFilters , setDraftFilters ] ,
580
+ [ shownFilters , setDraftFilters , log ] ,
514
581
) ;
582
+
515
583
const onDeleteFilter = useCallback (
516
584
( idx : number ) => {
585
+ log ( "filter delete" , {
586
+ filterType : "regular" ,
587
+ filterIndex : idx ,
588
+ } ) ;
517
589
setInvalidFilters ( idx , undefined ) ;
518
590
const newFilters = {
519
591
...shownFilters ,
@@ -525,11 +597,15 @@ function useDataFilters({
525
597
} as FilterExpression ;
526
598
setDraftFilters ( newFilters ) ;
527
599
} ,
528
- [ shownFilters , setDraftFilters , setInvalidFilters ] ,
600
+ [ shownFilters , setDraftFilters , setInvalidFilters , log ] ,
529
601
) ;
530
602
531
603
const onAddFilter = useCallback (
532
604
( idx : number ) => {
605
+ log ( "filter add" , {
606
+ filterType : "regular" ,
607
+ filterIndex : idx ,
608
+ } ) ;
533
609
const newFilters = {
534
610
...shownFilters ,
535
611
clauses : [
@@ -541,7 +617,7 @@ function useDataFilters({
541
617
} as FilterExpression ;
542
618
setDraftFilters ( newFilters ) ;
543
619
} ,
544
- [ shownFilters , setDraftFilters ] ,
620
+ [ shownFilters , setDraftFilters , log ] ,
545
621
) ;
546
622
547
623
const onError = useCallback (
@@ -574,6 +650,10 @@ function useDataFilters({
574
650
575
651
const onChangeOrder = useCallback (
576
652
( newOrder : "asc" | "desc" ) => {
653
+ log ( "filter order change" , {
654
+ oldOrder : shownFilters . order ,
655
+ newOrder,
656
+ } ) ;
577
657
const newFilters = {
578
658
...shownFilters ,
579
659
clauses : shownFilters . clauses . map ( ( filter , idx ) => ( {
@@ -585,7 +665,7 @@ function useDataFilters({
585
665
setDraftFilters ( newFilters ) ;
586
666
onChangeFilters ( newFilters ) ;
587
667
} ,
588
- [ shownFilters , setDraftFilters , onChangeFilters , invalidFilters ] ,
668
+ [ shownFilters , setDraftFilters , onChangeFilters , invalidFilters , log ] ,
589
669
) ;
590
670
591
671
return {
0 commit comments