Files
discord-decomp/lib/ZustandStore.tsx
T
2026-11-01 12:12:55 +02:00

59 lines
1.8 KiB
TypeScript

// Metro module 4057 (f4058).
import { createWithEqualityFn } from "../_bundle/identity_700";
import { subscribeWithSelector } from "../_bundle/createJSONStorage";
import { batchUpdates } from "../_bundle/Module705";
function $mk103488($env) {
return () => $env.$parent[1].setState($env[0]);
}
let env2330 = {};
const defaultStatesAreEqual = function defaultStatesAreEqual(a0, a1) {
return a0 === a1;
};
export function createZustandStore(a0) {
let env13816 = {
$parent: env2330
};
env13816[0] = a0;
env13816[1] = createWithEqualityFn(subscribeWithSelector((c24920_0, a1, a2) => (0, env13816[0])((c29258_0) => batchUpdates(() => c24920_0(c29258_0)), a1, a2)));
const setState = (a0) => {
let env24921;
const r1 = env24921 = {
$parent: env13816
};
env24921[0] = a0;
batchUpdates($mk103488(r1));
};
env13816[2] = setState;
return {
useState: function useState(a0, r3 = defaultStatesAreEqual) {
return (0, env13816[1])(a0, r3);
},
getState: function getState(a0) {
const state = env13816[1].getState();
return a0 != null ? a0(state) : state;
},
useField: function useField(c24922_0, r3 = defaultStatesAreEqual) {
if (r3 === void 0) {
r3 = defaultStatesAreEqual;
}
return (0, env13816[1])((a0) => a0[c24922_0], r3);
},
getField: function getField(a0) {
return env13816[1].getState()[a0];
},
subscribe: function subscribe(a0, a1, a2) {
return env13816[1].subscribe(a0, a1, a2);
},
setState,
resetState: function resetState() {
const initialState = env13816[1].getInitialState();
let env24923;
const r8 = env24923 = {
$parent: env13816
};
env24923[0] = initialState;
batchUpdates($mk103488(r8));
}
};
}