mirror of
https://github.com/remvze/moodist.git
synced 2025-12-18 09:24:14 +00:00
refactor: separate the migration
This commit is contained in:
parent
7658842324
commit
c35409ce0a
1 changed files with 20 additions and 19 deletions
|
|
@ -41,14 +41,24 @@ export const usePresetStore = create<PresetStore>()(
|
||||||
merge: (persisted, current) =>
|
merge: (persisted, current) =>
|
||||||
merge(current, persisted as Partial<PresetStore>),
|
merge(current, persisted as Partial<PresetStore>),
|
||||||
|
|
||||||
migrate: (persistedState, version) => {
|
migrate,
|
||||||
const persisted = persistedState as Partial<PresetStore>;
|
name: 'moodist-presets',
|
||||||
|
partialize: state => ({ presets: state.presets }),
|
||||||
|
skipHydration: true,
|
||||||
|
storage: createJSONStorage(() => localStorage),
|
||||||
|
version: 1,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
function migrate(persistedState: unknown, version: number) {
|
||||||
|
let persisted = persistedState as Partial<PresetStore>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In version 0, presets didn't have an ID
|
* In version 0, presets didn't have an ID
|
||||||
*/
|
*/
|
||||||
if (version === 0) {
|
if (version < 1) {
|
||||||
return {
|
persisted = {
|
||||||
...persisted,
|
...persisted,
|
||||||
presets: (persisted.presets || []).map(preset => {
|
presets: (persisted.presets || []).map(preset => {
|
||||||
if (preset.id) return preset;
|
if (preset.id) return preset;
|
||||||
|
|
@ -58,13 +68,4 @@ export const usePresetStore = create<PresetStore>()(
|
||||||
}
|
}
|
||||||
|
|
||||||
return persisted as PresetStore;
|
return persisted as PresetStore;
|
||||||
},
|
}
|
||||||
|
|
||||||
name: 'moodist-presets',
|
|
||||||
partialize: state => ({ presets: state.presets }),
|
|
||||||
skipHydration: true,
|
|
||||||
storage: createJSONStorage(() => localStorage),
|
|
||||||
version: 1,
|
|
||||||
},
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue