UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 1.59 kB
{"version":3,"file":"syncNativeState.js","names":[],"sources":["esm/platform/syncNativeState.js"],"sourcesContent":["import { useCallback, useRef, useSyncExternalStore } from \"react\";\nimport { createSyncState, isSyncState } from \"./syncStore\";\nfunction useNativeState(initial) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = createSyncState(initial);\n }\n const state = ref.current;\n useSyncExternalStore(state.subscribe, state.getSnapshot, state.getSnapshot);\n return state;\n}\nfunction syncHandleOf(value) {\n return isSyncState(value) ? value : null;\n}\nfunction useSyncValue(value) {\n const handle = syncHandleOf(value);\n const subscribe = useCallback(\n (notify) => handle ? handle.subscribe(notify) : () => {\n },\n [handle]\n );\n const getSnapshot = useCallback(\n () => handle ? handle.getSnapshot() : value,\n [handle, value]\n );\n return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n}\nexport {\n syncHandleOf,\n useNativeState,\n useSyncValue\n};\n//# sourceMappingURL=syncNativeState.js.map\n"],"mappings":";;;;AAEA,SAAS,eAAe,SAAS;CAC/B,MAAM,MAAM,OAAO,IAAI;CACvB,IAAI,IAAI,YAAY,MAAM;EACxB,IAAI,UAAU,gBAAgB,OAAO;CACvC;CACA,MAAM,QAAQ,IAAI;CAClB,qBAAqB,MAAM,WAAW,MAAM,aAAa,MAAM,WAAW;CAC1E,OAAO;AACT;AACA,SAAS,aAAa,OAAO;CAC3B,OAAO,YAAY,KAAK,IAAI,QAAQ;AACtC;AACA,SAAS,aAAa,OAAO;CAC3B,MAAM,SAAS,aAAa,KAAK;CACjC,MAAM,YAAY,aACf,WAAW,SAAS,OAAO,UAAU,MAAM,UAAU,CACtD,GACA,CAAC,MAAM,CACT;CACA,MAAM,cAAc,kBACZ,SAAS,OAAO,YAAY,IAAI,OACtC,CAAC,QAAQ,KAAK,CAChB;CACA,OAAO,qBAAqB,WAAW,aAAa,WAAW;AACjE"}