@@ -4,7 +4,6 @@ import { persist } from 'zustand/middleware'
44import { SelectedCard , SelectedTag , Theme , ListingMode , CardSettingsType } from '../types'
55import { Tag } from 'src/features/remoteConfig'
66
7-
87export type UserPreferencesState = {
98 userSelectedTags : Tag [ ]
109 theme : Theme
@@ -47,9 +46,10 @@ export const useUserPreferences = create(
4746 setOpenLinksNewTab : ( openLinksNewTab : boolean ) => set ( { openLinksNewTab : openLinksNewTab } ) ,
4847 setCards : ( selectedCards : SelectedCard [ ] ) => set ( { cards : selectedCards } ) ,
4948 setTags : ( selectedTags : Tag [ ] ) => set ( { userSelectedTags : selectedTags } ) ,
50- initState : ( newState : UserPreferencesState ) => set ( ( ) => {
51- return { ...newState }
52- } ) ,
49+ initState : ( newState : UserPreferencesState ) =>
50+ set ( ( ) => {
51+ return { ...newState }
52+ } ) ,
5353 setCardSettings : ( card : string , settings : CardSettingsType ) =>
5454 set ( ( state ) => ( {
5555 cardsSettings : {
@@ -61,24 +61,28 @@ export const useUserPreferences = create(
6161 {
6262 name : 'preferences_storage' ,
6363 onRehydrateStorage ( state ) {
64- console . log ( 'state' , state )
64+ return ( state , error ) => {
65+ if ( error ) {
66+ console . log ( 666 , 'an error happened during hydration' , error )
67+ } else {
68+ console . log ( 666 , 'hydration finished' , state )
69+ }
70+ }
6571 } ,
66- serialize : ( { state } ) => {
67- let stateStr = JSON . stringify ( {
72+ serialize : ( { state, version } ) => {
73+ const newState = {
6874 ...state ,
6975 userSelectedTags : state . userSelectedTags . map ( ( tag ) => tag . value ) ,
70- } )
71- console . log ( 666 , stateStr , 'serialize' )
72- return stateStr
76+ }
77+ return JSON . stringify ( { state : newState , version } )
7378 } ,
7479 deserialize : ( stateStr ) => {
75- let state = JSON . parse ( stateStr )
80+ let { state, version } = JSON . parse ( stateStr )
7681 state = {
7782 ...state ,
7883 userSelectedTags : enhanceTags ( state . userSelectedTags ) ,
7984 }
80- console . log ( 666 , state , 'deserialize' )
81- return state
85+ return { state, version }
8286 } ,
8387 }
8488 )
0 commit comments