1
- import { create } from "zustand"
2
- import { devtools , persist , createJSONStorage } from "zustand/middleware"
1
+ import { create } from "zustand" ;
2
+ import { devtools , persist , createJSONStorage } from "zustand/middleware" ;
3
3
4
4
const initialState = {
5
5
quickstartTasksCompleted : 0 ,
6
6
subCategoryFromSourceConfigMap : { } ,
7
7
active : '' ,
8
- collectionsMap : { } ,
9
- allCollections : [ ] ,
10
- hostNameMap : { } ,
11
- lastFetchedInfo : {
12
- lastRiskScoreInfo : 0 ,
13
- lastSensitiveInfo : 0 ,
14
- } ,
15
- lastFetchedResp : {
16
- criticalUrls : 0 ,
17
- riskScoreMap : { } ,
18
- } ,
8
+ allCollections : [ ] , // Persist only this
9
+ collectionsMap : { } , // Keep in memory (not persisted)
10
+ hostNameMap : { } , // Keep in memory (not persisted)
11
+ lastFetchedInfo : { lastRiskScoreInfo : 0 , lastSensitiveInfo : 0 } ,
12
+ lastFetchedResp : { criticalUrls : 0 , riskScoreMap : { } } ,
19
13
lastFetchedSeverityResp : { } ,
20
14
lastCalledSensitiveInfo : 0 ,
21
15
lastFetchedSensitiveResp : [ ] ,
22
16
selectedSampleApi : { } ,
23
- coverageMap :{ } ,
24
- filtersMap :{ } ,
17
+ coverageMap : { } ,
18
+ filtersMap : { } ,
25
19
tableInitialState : { } ,
26
20
trafficAlerts : [ ] ,
27
21
sendEventOnLogin : false ,
28
22
tableSelectedTab : { } ,
29
23
threatFiltersMap : null ,
30
24
} ;
31
25
32
- let persistStore = ( set ) => ( {
26
+ let persistStore = ( set , get ) => ( {
33
27
...initialState ,
34
28
accessToken : null ,
35
- storeAccessToken : ( accessToken ) => set ( { accessToken : accessToken } ) ,
29
+ storeAccessToken : ( accessToken ) => set ( { accessToken } ) ,
36
30
setQuickstartTasksCompleted : ( quickstartTasksCompleted ) => set ( { quickstartTasksCompleted } ) ,
37
31
setSubCategoryFromSourceConfigMap : ( subCategoryFromSourceConfigMap ) => set ( { subCategoryFromSourceConfigMap } ) ,
38
32
setActive : ( selected ) => set ( { active : selected } ) ,
39
- setCollectionsMap : ( collectionsMap ) => set ( { collectionsMap } ) ,
33
+
40
34
setAllCollections : ( allCollections ) => {
41
35
const optimizedCollections = allCollections . map ( ( { id, displayName, urlsCount, deactivated, type, automated, startTs } ) => ( {
42
36
id,
@@ -49,27 +43,46 @@ let persistStore = (set) => ({
49
43
} ) ) ;
50
44
set ( { allCollections : optimizedCollections } ) ;
51
45
} ,
46
+ setCollectionsMap : ( collectionsMap ) => set ( { collectionsMap } ) ,
52
47
setHostNameMap : ( hostNameMap ) => set ( { hostNameMap } ) ,
53
48
setLastFetchedInfo : ( lastFetchedInfo ) => set ( { lastFetchedInfo } ) ,
54
49
setLastFetchedResp : ( lastFetchedResp ) => set ( { lastFetchedResp } ) ,
55
50
setLastFetchedSeverityResp : ( lastFetchedSeverityResp ) => set ( { lastFetchedSeverityResp } ) ,
56
51
setLastCalledSensitiveInfo : ( lastCalledSensitiveInfo ) => set ( { lastCalledSensitiveInfo } ) ,
57
52
setLastFetchedSensitiveResp : ( lastFetchedSensitiveResp ) => set ( { lastFetchedSensitiveResp } ) ,
58
- setSelectedSampleApi : ( selectedSampleApi ) => set ( { selectedSampleApi : selectedSampleApi } ) ,
59
- setCoverageMap :( coverageMap ) => { set ( { coverageMap : coverageMap } ) } ,
53
+ setSelectedSampleApi : ( selectedSampleApi ) => set ( { selectedSampleApi } ) ,
54
+ setCoverageMap : ( coverageMap ) => set ( { coverageMap } ) ,
60
55
setFiltersMap : ( filtersMap ) => set ( { filtersMap } ) ,
61
56
setTableInitialState : ( tableInitialState ) => set ( { tableInitialState } ) ,
62
- setTrafficAlerts : ( trafficAlerts ) => set ( { trafficAlerts} ) ,
63
- setTableSelectedTab : ( tableSelectedTab ) => set ( { tableSelectedTab} ) ,
64
- setThreatFiltersMap : ( threatFiltersMap ) => set ( { threatFiltersMap} ) ,
57
+ setTrafficAlerts : ( trafficAlerts ) => set ( { trafficAlerts } ) ,
58
+ setTableSelectedTab : ( tableSelectedTab ) => set ( { tableSelectedTab } ) ,
59
+ setThreatFiltersMap : ( threatFiltersMap ) => set ( { threatFiltersMap } ) ,
65
60
66
61
resetAll : ( ) => set ( initialState ) , // Reset function
67
- } )
62
+ } ) ;
68
63
69
- persistStore = devtools ( persistStore )
70
- persistStore = persist ( persistStore , { storage : createJSONStorage ( ( ) => sessionStorage ) } )
64
+ persistStore = devtools ( persistStore ) ;
65
+ persistStore = persist ( persistStore , {
66
+ name : "persistedStore" ,
67
+ storage : createJSONStorage ( ( ) => sessionStorage ) ,
68
+ partialize : ( state ) => ( {
69
+ allCollections : state . allCollections , // Persist only allCollections
70
+ lastFetchedInfo : state . lastFetchedInfo ,
71
+ lastFetchedResp : state . lastFetchedResp ,
72
+ lastFetchedSeverityResp : state . lastFetchedSeverityResp ,
73
+ lastCalledSensitiveInfo : state . lastCalledSensitiveInfo ,
74
+ lastFetchedSensitiveResp : state . lastFetchedSensitiveResp ,
75
+ selectedSampleApi : state . selectedSampleApi ,
76
+ coverageMap : state . coverageMap ,
77
+ filtersMap : state . filtersMap ,
78
+ tableInitialState : state . tableInitialState ,
79
+ trafficAlerts : state . trafficAlerts ,
80
+ sendEventOnLogin : state . sendEventOnLogin ,
81
+ tableSelectedTab : state . tableSelectedTab ,
82
+ threatFiltersMap : state . threatFiltersMap ,
83
+ } )
84
+ } ) ;
71
85
72
86
const PersistStore = create ( persistStore ) ;
73
87
74
- export default PersistStore
75
-
88
+ export default PersistStore ;
0 commit comments