Skip to content

Instantly share code, notes, and snippets.

View kinoadr's full-sized avatar

Adrien Gautier kinoadr

View GitHub Profile
@kinoadr
kinoadr / deferredPersist.ts
Last active January 12, 2023 23:11
Zustand (^3.7.0) persist middleware with deferred hydration.
import { persist, PersistOptions } from 'zustand/middleware';
import { GetState, SetState, StoreApi } from 'zustand/vanilla';
type DeferredPersistOptions<S extends object> = PersistOptions<S, Partial<S>> & {
hydrateOnResolve?: Promise<void>;
};
const DEFAULT_GET_STORAGE = () => localStorage;
export default function deferredPersist<