UNPKG

@quirks/store

Version:
131 lines (130 loc) 3.2 kB
import { subscribeWithSelector as v, persist as w } from "zustand/middleware"; import { createStore as E } from "zustand/vanilla"; import { shared as b, defaultSharedOptions as I } from "./index11.js"; import { createConfigSlice as y, configInitialState as A } from "./index12.js"; import { createConnectSlice as D, connectInitialState as r } from "./index13.js"; import { createAccountSlice as H, accountInitialState as P } from "./index14.js"; import { createSignSlice as T, signInitialState as N } from "./index15.js"; import { createWalletConnectSlice as W, walletConnectInitialState as m } from "./index16.js"; import { emptyPersistOptions as j } from "./index10.js"; import { defaultPersistOptions as q } from "./index9.js"; let i = E( v( w( b((...e) => ({ ...y(...e), ...D(...e), ...H(...e), ...T(...e), ...W(...e), reset: () => { e[0]({ ...A, ...r, ...P, ...m }); } })), j ) ) ); const X = (e) => { var O, C; const { wallets: l, chains: c, assetsLists: S, autoConnect: f = !0, autoSuggestions: k = !0, autoAccountChange: x = !0, persistOptions: o = q, sharedOptions: F = I, walletConnectOptions: s, signOptions: g, signerOptions: L } = e, _ = g || N.signOptions, d = { ...N, signOptions: _, signerOptions: L }, u = { ...r, options: { ...r.options, autoSuggestions: k, autoAccountChange: x } }, n = m.namespaces, h = c.map((t) => `cosmos:${t.chain_id}`); s != null && s.namespaces ? n.cosmos = { ...s.namespaces.cosmos, chains: h, events: [ ...n.cosmos.events, ...s.namespaces.cosmos.events ], methods: [ ...n.cosmos.methods, ...s.namespaces.cosmos.methods ] } : n.cosmos = { ...n.cosmos, chains: h }; const p = { ...m, ...s, namespaces: n }, $ = (O = o.getInitialState) == null ? void 0 : O.call(o); if (i = E( v( w( b( (...t) => ({ ...y(...t), wallets: l, chains: c, assetsLists: S, ...D(...t), ...H(...t), ...u, ...T(...t), ...d, ...W(...t), ...p, reset: () => { t[0]({ ...A, ...u, ...P, ...d, ...p, wallets: l, chains: c, assetsLists: S }); }, ...$ }), { ...I, ...F } ), o ) ) ), i.persist.getOptions().skipHydration) { const t = (C = i.persist) == null ? void 0 : C.onFinishHydration((a) => { a.walletName && a.status === "CONNECTED" && !a.wallet && f && (i.getState().reconnect(a.walletName), t()); }); } else { const t = i.getState(); t.walletName && t.status === "CONNECTED" && !t.wallet && f && i.getState().reconnect(t.walletName); } return i; }; export { X as createConfig, i as store };