fixed hdyration bug, think we're ready for issues
This commit is contained in:
parent
a961f387d6
commit
8b6f09cead
1 changed files with 40 additions and 10 deletions
|
|
@ -1,6 +1,25 @@
|
|||
import { createStore } from 'zustand/vanilla'
|
||||
import { persist, createJSONStorage } from 'zustand/middleware'
|
||||
import { get, set, del } from 'idb-keyval'
|
||||
|
||||
export const store = createStore((set, get) => ({
|
||||
// Create IndexedDB storage adapter
|
||||
const storage = createJSONStorage(() => ({
|
||||
getItem: async (name) => {
|
||||
const value = await get(name)
|
||||
return value ?? null
|
||||
},
|
||||
setItem: async (name, value) => {
|
||||
await set(name, value)
|
||||
},
|
||||
removeItem: async (name) => {
|
||||
await del(name)
|
||||
},
|
||||
}))
|
||||
|
||||
export const store = createStore(
|
||||
persist(
|
||||
(set, get) => ({
|
||||
_hydrated: true, // Start as true - persistence happens in background
|
||||
user: null,
|
||||
items: [],
|
||||
route: 'home',
|
||||
|
|
@ -10,4 +29,15 @@ export const store = createStore((set, get) => ({
|
|||
addItem: (item) => set(s => ({ items: [...s.items, item] })),
|
||||
removeItem: (id) => set(s => ({ items: s.items.filter(i => i.id !== id) })),
|
||||
navigate: (route) => set({ route }),
|
||||
}))
|
||||
}),
|
||||
{
|
||||
name: 'app-store',
|
||||
storage,
|
||||
partialize: (state) => ({
|
||||
user: state.user,
|
||||
items: state.items,
|
||||
route: state.route,
|
||||
}),
|
||||
}
|
||||
)
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue