From 9fda3cd49a6a16616d564ec82c9ce5ef0439c47b Mon Sep 17 00:00:00 2001 From: jeffvli Date: Thu, 13 Nov 2025 09:24:26 -0800 Subject: [PATCH] add indexeddb storage for zustand --- src/renderer/store/utils.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/renderer/store/utils.ts b/src/renderer/store/utils.ts index 2521ea4dc..a9dd78c66 100644 --- a/src/renderer/store/utils.ts +++ b/src/renderer/store/utils.ts @@ -1,5 +1,6 @@ +import { del, get, set } from 'idb-keyval'; import mergeWith from 'lodash/mergeWith'; - +import { StateStorage } from 'zustand/middleware'; /** * A custom deep merger that will replace all 'columns' items with the persistent * state, instead of the default merge behavior. This is important to preserve the user's @@ -17,3 +18,18 @@ export const mergeOverridingColumns = (persistedState: unknown, currentState: return undefined; }); }; + +export const idbStateStorage: StateStorage = { + getItem: async (name: string): Promise => { + console.log(name, 'has been retrieved'); + return (await get(name)) || null; + }, + removeItem: async (name: string): Promise => { + console.log(name, 'has been deleted'); + await del(name); + }, + setItem: async (name: string, value: string): Promise => { + console.log(name, 'with value', value, 'has been saved'); + await set(name, value); + }, +};