@@ -250,33 +250,44 @@ document.addEventListener('alpine:init', () => {
250250
251251        } 
252252    } ) ) ; 
253-     
254253
255-     Alpine . data ( 'booleanFilter' ,  ( filterKey , tableName , defaultValue )  =>  ( { 
254+     Alpine . data ( 'booleanFilter' ,  ( wire , filterKey , tableName , defaultValue )  =>  ( { 
255+         switchOn : false ,  
256+         value : wire . entangle ( 'filterComponents.' + filterKey ) . live ,  
257+         init ( )  {  
258+             this . switchOn  =  false ;  
259+             if  ( typeof  this . value  !==  'undefined' )  {  
260+                 this . switchOn  =  Boolean ( Number ( this . value ) ) ;  
261+             } 
262+             this . listeners . push ( 
263+                 Livewire . on ( 'filter-was-set' ,  ( detail )  =>  { 
264+                     if ( detail . tableName  ==  tableName  &&  detail . filterKey  ==  filterKey )  {  
265+                         this . switchOn  =  detail . value  ??  defaultValue ;  
266+                     } 
267+                 } ) 
268+             ) ; 
269+         } 
270+     } ) ) ; 
271+     
272+     Alpine . data ( 'newBooleanFilter' ,  ( filterKey , tableName , defaultValue )  =>  ( { 
256273        switchOn : false ,  
257274        value : false ,  
258275        toggleStatus ( ) 
259276        { 
260277            let  tempValue  =  Boolean ( Number ( this . $wire . get ( 'filterComponents.' + filterKey )  ??  this . value ) ) ; 
261278            let  newBoolean  =  ! tempValue ; 
262-             let  newValue  =  Number ( newBoolean ) ; 
263-             this . value  =  newBoolean ; 
264-             this . switchOn  =  newBoolean ; 
265-             this . updateStatus ( newValue ) ; 
279+             this . switchOn  =  this . value  =  newBoolean ; 
280+             return  Number ( newBoolean ) ; 
266281        } , 
267-         toggleStatusWithReset ( ) 
282+         toggleStatusWithUpdate ( ) 
268283        { 
269-             let  tempValue  =  Boolean ( Number ( this . $wire . get ( 'filterComponents.' + filterKey )  ??  this . value ) ) ; 
270-             let  newBoolean  =  ! tempValue ; 
271-             let  newValue  =  Number ( newBoolean ) ; 
272-             this . value  =  newBoolean ; 
273-             this . switchOn  =  newBoolean ; 
274-             this . $wire . call ( 'resetFilter' , filterKey ) ; 
275-             
284+             let  newValue  =  this . toggleStatus ( ) ; 
285+             this . $wire . set ( 'filterComponents.' + filterKey ,  newValue ) ; 
276286        } , 
277-         updateStatus ( newValue ) 
287+         toggleStatusWithReset ( ) 
278288        { 
279-             this . $wire . set ( 'filterComponents.' + filterKey ,  newValue ) ; 
289+             let  newValue  =  this . toggleStatus ( ) ; 
290+             this . $wire . call ( 'resetFilter' , filterKey ) ; 
280291        } , 
281292        setSwitchOn ( val ) 
282293        { 
@@ -286,8 +297,7 @@ document.addEventListener('alpine:init', () => {
286297        init ( )  {  
287298            this . $nextTick ( ( )  =>  {  
288299                this . value  =  this . $wire . get ( 'filterComponents.' + filterKey )  ??  defaultValue ; 
289-                 let  number  =  Number ( this . value  ??  0 ) ; 
290-                 this . switchOn  =  Boolean ( number ) ;  
300+                 this . setSwitchOn ( this . value  ??  0 ) ; 
291301            } ) ; 
292302
293303            this . listeners . push ( 
0 commit comments