import { __toESM } from "./chunk-TaYrc8OX.js"; import { require_react } from "./react-BIHQR0-h.js"; //#region node_modules/.pnpm/nanostores@1.0.1/node_modules/nanostores/listen-keys/index.js function listenKeys($store, keys, listener) { let keysSet = new Set(keys).add(void 0); return $store.listen((value, oldValue, changed) => { if (keysSet.has(changed)) listener(value, oldValue, changed); }); } //#endregion //#region node_modules/.pnpm/@nanostores+react@1.0.0_nanostores@1.0.1_react@19.1.1/node_modules/@nanostores/react/index.js var import_react = /* @__PURE__ */ __toESM(require_react(), 1); var emit = (snapshotRef, onChange) => (value) => { if (snapshotRef.current === value) return; snapshotRef.current = value; onChange(); }; function useStore(store, { keys, deps = [store, keys] } = {}) { let snapshotRef = (0, import_react.useRef)(); snapshotRef.current = store.get(); let subscribe = (0, import_react.useCallback)((onChange) => { emit(snapshotRef, onChange)(store.value); return keys?.length > 0 ? listenKeys(store, keys, emit(snapshotRef, onChange)) : store.listen(emit(snapshotRef, onChange)); }, deps); let get = () => snapshotRef.current; return (0, import_react.useSyncExternalStore)(subscribe, get, get); } //#endregion export { useStore }; //# sourceMappingURL=@nanostores_react.js.map