From c35409ce0a95d8376f0d84c96ed0975c9f3a1301 Mon Sep 17 00:00:00 2001 From: MAZE Date: Sun, 16 Jun 2024 18:09:51 +0430 Subject: [PATCH] refactor: separate the migration --- src/stores/preset/index.ts | 39 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/stores/preset/index.ts b/src/stores/preset/index.ts index 79733ad..2863869 100644 --- a/src/stores/preset/index.ts +++ b/src/stores/preset/index.ts @@ -41,25 +41,7 @@ export const usePresetStore = create()( merge: (persisted, current) => merge(current, persisted as Partial), - migrate: (persistedState, version) => { - const persisted = persistedState as Partial; - - /** - * In version 0, presets didn't have an ID - */ - if (version === 0) { - return { - ...persisted, - presets: (persisted.presets || []).map(preset => { - if (preset.id) return preset; - return { ...preset, id: uuid() }; - }), - } as PresetStore; - } - - return persisted as PresetStore; - }, - + migrate, name: 'moodist-presets', partialize: state => ({ presets: state.presets }), skipHydration: true, @@ -68,3 +50,22 @@ export const usePresetStore = create()( }, ), ); + +function migrate(persistedState: unknown, version: number) { + let persisted = persistedState as Partial; + + /** + * In version 0, presets didn't have an ID + */ + if (version < 1) { + persisted = { + ...persisted, + presets: (persisted.presets || []).map(preset => { + if (preset.id) return preset; + return { ...preset, id: uuid() }; + }), + } as PresetStore; + } + + return persisted as PresetStore; +}