UNPKG

dgz-ui-shared

Version:

Custom ui library using React.js, Shadcn/ui, TailwindCSS, Typescript, dgz-ui library

168 lines (167 loc) 4.06 kB
import _ from "react"; function w(r, s) { let t; try { t = r(); } catch { return; } return { getItem: (a) => { var n; const f = (d) => d === null ? null : JSON.parse(d, void 0), u = (n = t.getItem(a)) != null ? n : null; return u instanceof Promise ? u.then(f) : f(u); }, setItem: (a, n) => t.setItem(a, JSON.stringify(n, void 0)), removeItem: (a) => t.removeItem(a) }; } const b = (r) => (s) => { try { const t = r(s); return t instanceof Promise ? t : { then(o) { return b(o)(t); }, catch(o) { return this; } }; } catch (t) { return { then(o) { return this; }, catch(o) { return b(o)(t); } }; } }, E = (r, s) => (t, o, a) => { let n = { storage: w(() => localStorage), partialize: (e) => e, version: 0, merge: (e, S) => ({ ...S, ...e }), ...s }, f = !1; const u = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set(); let i = n.storage; if (!i) return r( (...e) => { console.warn( `[zustand persist middleware] Unable to update item '${n.name}', the given storage is currently unavailable.` ), t(...e); }, o, a ); const h = () => { const e = n.partialize({ ...o() }); return i.setItem(n.name, { state: e, version: n.version }); }, v = a.setState; a.setState = (e, S) => { v(e, S), h(); }; const g = r( (...e) => { t(...e), h(); }, o, a ); a.getInitialState = () => g; let m; const I = () => { var e, S; if (!i) return; f = !1, u.forEach((c) => { var l; return c((l = o()) != null ? l : g); }); const y = ((S = n.onRehydrateStorage) == null ? void 0 : S.call(n, (e = o()) != null ? e : g)) || void 0; return b(i.getItem.bind(i))(n.name).then((c) => { if (c) if (typeof c.version == "number" && c.version !== n.version) { if (n.migrate) { const l = n.migrate( c.state, c.version ); return l instanceof Promise ? l.then((p) => [!0, p]) : [!0, l]; } console.error( "State loaded from storage couldn't be migrated since no migrate function was provided" ); } else return [!1, c.state]; return [!1, void 0]; }).then((c) => { var l; const [p, j] = c; if (m = n.merge( j, (l = o()) != null ? l : g ), t(m, !0), p) return h(); }).then(() => { y == null || y(m, void 0), m = o(), f = !0, d.forEach((c) => c(m)); }).catch((c) => { y == null || y(void 0, c); }); }; return a.persist = { setOptions: (e) => { n = { ...n, ...e }, e.storage && (i = e.storage); }, clearStorage: () => { i == null || i.removeItem(n.name); }, getOptions: () => n, rehydrate: () => I(), hasHydrated: () => f, onHydrate: (e) => (u.add(e), () => { u.delete(e); }), onFinishHydration: (e) => (d.add(e), () => { d.delete(e); }) }, n.skipHydration || I(), m || g; }, N = E, H = (r) => { let s; const t = /* @__PURE__ */ new Set(), o = (i, h) => { const v = typeof i == "function" ? i(s) : i; if (!Object.is(v, s)) { const g = s; s = h ?? (typeof v != "object" || v === null) ? v : Object.assign({}, s, v), t.forEach((m) => m(s, g)); } }, a = () => s, u = { setState: o, getState: a, getInitialState: () => d, subscribe: (i) => (t.add(i), () => t.delete(i)) }, d = s = r(o, a, u); return u; }, R = (r) => r ? H(r) : H, x = (r) => r; function F(r, s = x) { const t = _.useSyncExternalStore( r.subscribe, () => s(r.getState()), () => s(r.getInitialState()) ); return _.useDebugValue(t), t; } const O = (r) => { const s = R(r), t = (o) => F(s, o); return Object.assign(t, s), t; }, P = (r) => r ? O(r) : O; export { w as a, P as c, N as p };