fixed hdyration bug, think we're ready for issues

This commit is contained in:
authentik Default Admin 2026-03-04 18:35:20 -08:00
parent a961f387d6
commit 8b6f09cead

View file

@ -1,13 +1,43 @@
import { createStore } from 'zustand/vanilla' 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
user: null, const storage = createJSONStorage(() => ({
items: [], getItem: async (name) => {
route: 'home', const value = await get(name)
return value ?? null
// Actions },
setUser: (user) => set({ user }), setItem: async (name, value) => {
addItem: (item) => set(s => ({ items: [...s.items, item] })), await set(name, value)
removeItem: (id) => set(s => ({ items: s.items.filter(i => i.id !== id) })), },
navigate: (route) => set({ route }), 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',
// Actions
setUser: (user) => set({ user }),
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,
}),
}
)
)