@@ -22,6 +22,7 @@ type WalletFilterPersonaProps = {
22
22
selectedPersona : number [ ]
23
23
setSelectedPersona : React . Dispatch < React . SetStateAction < number [ ] > >
24
24
showMobileSidebar : boolean
25
+ resetWalletFilter : React . MutableRefObject < ( ) => void >
25
26
}
26
27
27
28
const computeFilters = (
@@ -52,6 +53,7 @@ const WalletFilterPersona = ({
52
53
selectedPersona,
53
54
setSelectedPersona,
54
55
showMobileSidebar,
56
+ resetWalletFilter,
55
57
} : WalletFilterPersonaProps ) => {
56
58
const personas = useWalletPersonas ( )
57
59
const handleSelectPersona = ( idx : number , persona : WalletPersonas ) => {
@@ -63,24 +65,39 @@ const WalletFilterPersona = ({
63
65
eventAction : `${ persona . title } ` ,
64
66
eventName : `${ persona . title } false` ,
65
67
} )
68
+ setSelectedPersona ( newSelectedPersonas )
69
+ if ( newSelectedPersonas . length < 1 ) {
70
+ resetFilters ( )
71
+ resetWalletFilter . current ( )
72
+ } else {
73
+ const newFilters = computeFilters ( newSelectedPersonas , personas )
74
+ setFilters ( ( prevFilters ) => {
75
+ const combinedFilters = Object . fromEntries (
76
+ Object . entries ( prevFilters ) . map ( ( [ key , value ] ) => {
77
+ return [ key , newFilters [ key ] ]
78
+ } )
79
+ )
80
+ return combinedFilters as WalletFilter
81
+ } )
82
+ }
66
83
} else {
67
84
newSelectedPersonas = [ ...selectedPersona , idx ]
68
85
trackCustomEvent ( {
69
86
eventCategory : "UserPersona" ,
70
87
eventAction : `${ persona . title } ` ,
71
88
eventName : `${ persona . title } true` ,
72
89
} )
90
+ setSelectedPersona ( newSelectedPersonas )
91
+ const newFilters = computeFilters ( newSelectedPersonas , personas )
92
+ setFilters ( ( prevFilters ) => {
93
+ const combinedFilters = Object . fromEntries (
94
+ Object . entries ( prevFilters ) . map ( ( [ key , value ] ) => {
95
+ return [ key , value || newFilters [ key ] ]
96
+ } )
97
+ )
98
+ return combinedFilters as WalletFilter
99
+ } )
73
100
}
74
- setSelectedPersona ( newSelectedPersonas )
75
- const newFilters = computeFilters ( newSelectedPersonas , personas )
76
- setFilters ( ( prevFilters ) => {
77
- const combinedFilters = Object . fromEntries (
78
- Object . entries ( prevFilters ) . map ( ( [ key , value ] ) => {
79
- return [ key , value || newFilters [ key ] ]
80
- } )
81
- )
82
- return combinedFilters as WalletFilter
83
- } )
84
101
}
85
102
86
103
return (
0 commit comments