@legendapp/state 3.0.0-alpha.1 → 3.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/.DS_Store +0 -0
  2. package/CHANGELOG.md +1 -831
  3. package/LICENSE +1 -21
  4. package/README.md +1 -141
  5. package/as/arrayAsRecord.d.mts +5 -0
  6. package/as/arrayAsRecord.d.ts +5 -0
  7. package/as/arrayAsRecord.js +28 -0
  8. package/as/arrayAsRecord.mjs +26 -0
  9. package/as/arrayAsSet.d.mts +5 -0
  10. package/as/arrayAsSet.d.ts +5 -0
  11. package/as/arrayAsSet.js +13 -0
  12. package/as/arrayAsSet.mjs +11 -0
  13. package/as/arrayAsString.d.mts +5 -0
  14. package/as/arrayAsString.d.ts +5 -0
  15. package/as/arrayAsString.js +13 -0
  16. package/as/arrayAsString.mjs +11 -0
  17. package/as/numberAsString.d.mts +5 -0
  18. package/as/numberAsString.d.ts +5 -0
  19. package/as/numberAsString.js +13 -0
  20. package/as/numberAsString.mjs +11 -0
  21. package/as/recordAsArray.d.mts +5 -0
  22. package/as/recordAsArray.d.ts +5 -0
  23. package/as/recordAsArray.js +25 -0
  24. package/as/recordAsArray.mjs +23 -0
  25. package/as/recordAsString.d.mts +5 -0
  26. package/as/recordAsString.d.ts +5 -0
  27. package/as/recordAsString.js +13 -0
  28. package/as/recordAsString.mjs +11 -0
  29. package/as/setAsArray.d.mts +5 -0
  30. package/as/setAsArray.d.ts +5 -0
  31. package/as/setAsArray.js +13 -0
  32. package/as/setAsArray.mjs +11 -0
  33. package/as/setAsString.d.mts +5 -0
  34. package/as/setAsString.d.ts +5 -0
  35. package/as/setAsString.js +13 -0
  36. package/as/setAsString.mjs +11 -0
  37. package/as/stringAsArray.d.mts +5 -0
  38. package/as/stringAsArray.d.ts +5 -0
  39. package/as/stringAsArray.js +13 -0
  40. package/as/stringAsArray.mjs +11 -0
  41. package/as/stringAsNumber.d.mts +5 -0
  42. package/as/stringAsNumber.d.ts +5 -0
  43. package/as/stringAsNumber.js +16 -0
  44. package/as/stringAsNumber.mjs +14 -0
  45. package/as/stringAsRecord.d.mts +5 -0
  46. package/as/stringAsRecord.d.ts +5 -0
  47. package/as/stringAsRecord.js +15 -0
  48. package/as/stringAsRecord.mjs +13 -0
  49. package/as/stringAsSet.d.mts +5 -0
  50. package/as/stringAsSet.d.ts +5 -0
  51. package/as/stringAsSet.js +13 -0
  52. package/as/stringAsSet.mjs +11 -0
  53. package/babel.d.mts +21 -0
  54. package/babel.d.ts +21 -2
  55. package/babel.js +57 -53
  56. package/babel.mjs +65 -0
  57. package/config/enable$GetSet.js +13 -14
  58. package/config/enable$GetSet.mjs +13 -14
  59. package/config/enableReactComponents.d.mts +9 -0
  60. package/config/enableReactComponents.d.ts +4 -2
  61. package/config/enableReactComponents.js +13 -10
  62. package/config/enableReactComponents.mjs +13 -10
  63. package/config/enableReactNativeComponents.d.mts +22 -0
  64. package/config/enableReactNativeComponents.d.ts +6 -4
  65. package/config/enableReactNativeComponents.js +43 -47
  66. package/config/enableReactNativeComponents.mjs +43 -47
  67. package/config/enableReactTracking.d.mts +7 -0
  68. package/config/enableReactTracking.d.ts +3 -2
  69. package/config/enableReactTracking.js +33 -38
  70. package/config/enableReactTracking.mjs +33 -38
  71. package/config/enableReactUse.d.mts +10 -0
  72. package/config/enableReactUse.d.ts +4 -1
  73. package/config/enableReactUse.js +15 -14
  74. package/config/enableReactUse.mjs +15 -14
  75. package/config/{enable$GetSet.d.ts → enable_GetSet.d.mts} +4 -2
  76. package/config/enable_GetSet.d.ts +10 -0
  77. package/config/enable_PeekAssign.d.mts +10 -0
  78. package/config/enable_PeekAssign.d.ts +4 -2
  79. package/config/enable_PeekAssign.js +13 -14
  80. package/config/enable_PeekAssign.mjs +13 -14
  81. package/helpers/pageHash.d.mts +9 -0
  82. package/helpers/pageHash.d.ts +2 -0
  83. package/helpers/pageHash.js +25 -30
  84. package/helpers/pageHash.mjs +25 -30
  85. package/helpers/pageHashParams.d.mts +9 -0
  86. package/helpers/pageHashParams.d.ts +2 -0
  87. package/helpers/pageHashParams.js +34 -37
  88. package/helpers/pageHashParams.mjs +34 -37
  89. package/helpers/time.d.mts +6 -0
  90. package/helpers/time.d.ts +6 -3
  91. package/helpers/time.js +17 -17
  92. package/helpers/time.mjs +17 -17
  93. package/helpers/trackHistory.d.mts +6 -0
  94. package/helpers/trackHistory.d.ts +4 -2
  95. package/helpers/trackHistory.js +13 -16
  96. package/helpers/trackHistory.mjs +13 -16
  97. package/helpers/undoRedo.d.mts +37 -0
  98. package/helpers/undoRedo.d.ts +5 -3
  99. package/helpers/undoRedo.js +59 -94
  100. package/helpers/undoRedo.mjs +59 -94
  101. package/index.d.mts +404 -0
  102. package/index.d.ts +371 -28
  103. package/index.js +2015 -2166
  104. package/index.mjs +2015 -2166
  105. package/package.json +254 -195
  106. package/persist-plugins/async-storage.d.mts +18 -0
  107. package/persist-plugins/async-storage.d.ts +6 -3
  108. package/persist-plugins/async-storage.js +79 -86
  109. package/persist-plugins/async-storage.mjs +79 -86
  110. package/persist-plugins/indexeddb.d.mts +29 -0
  111. package/persist-plugins/indexeddb.d.ts +6 -3
  112. package/persist-plugins/indexeddb.js +331 -352
  113. package/persist-plugins/indexeddb.mjs +331 -352
  114. package/persist-plugins/local-storage.d.mts +23 -0
  115. package/persist-plugins/local-storage.d.ts +8 -5
  116. package/persist-plugins/local-storage.js +74 -76
  117. package/persist-plugins/local-storage.mjs +74 -76
  118. package/persist-plugins/mmkv.d.mts +18 -0
  119. package/persist-plugins/mmkv.d.ts +6 -3
  120. package/persist-plugins/mmkv.js +82 -86
  121. package/persist-plugins/mmkv.mjs +82 -86
  122. package/react-hooks/createObservableHook.d.mts +5 -0
  123. package/react-hooks/createObservableHook.d.ts +4 -1
  124. package/react-hooks/createObservableHook.js +29 -30
  125. package/react-hooks/createObservableHook.mjs +25 -30
  126. package/react-hooks/useHover.d.mts +5 -0
  127. package/react-hooks/useHover.d.ts +5 -3
  128. package/react-hooks/useHover.js +29 -29
  129. package/react-hooks/useHover.mjs +29 -29
  130. package/react-hooks/useMeasure.d.mts +9 -0
  131. package/react-hooks/useMeasure.d.ts +5 -2
  132. package/react-hooks/useMeasure.js +30 -32
  133. package/react-hooks/useMeasure.mjs +30 -32
  134. package/react-hooks/useObservableNextRouter.d.mts +35 -0
  135. package/react-hooks/useObservableNextRouter.d.ts +9 -7
  136. package/react-hooks/useObservableNextRouter.js +64 -77
  137. package/react-hooks/useObservableNextRouter.mjs +60 -77
  138. package/react.d.mts +157 -0
  139. package/react.d.ts +157 -21
  140. package/react.js +458 -749
  141. package/react.mjs +457 -752
  142. package/sync-plugins/crud.d.mts +54 -0
  143. package/sync-plugins/crud.d.ts +12 -10
  144. package/sync-plugins/crud.js +253 -270
  145. package/sync-plugins/crud.mjs +253 -270
  146. package/sync-plugins/fetch.d.mts +21 -0
  147. package/sync-plugins/fetch.d.ts +7 -4
  148. package/sync-plugins/fetch.js +50 -37
  149. package/sync-plugins/fetch.mjs +50 -37
  150. package/sync-plugins/keel.d.mts +108 -0
  151. package/sync-plugins/keel.d.ts +17 -15
  152. package/sync-plugins/keel.js +229 -462
  153. package/sync-plugins/keel.mjs +227 -464
  154. package/sync-plugins/supabase.d.mts +39 -0
  155. package/sync-plugins/supabase.d.ts +16 -14
  156. package/sync-plugins/supabase.js +128 -128
  157. package/sync-plugins/supabase.mjs +128 -128
  158. package/sync-plugins/tanstack-query.d.mts +14 -0
  159. package/sync-plugins/tanstack-query.d.ts +7 -4
  160. package/sync-plugins/tanstack-query.js +51 -57
  161. package/sync-plugins/tanstack-query.mjs +51 -57
  162. package/sync-plugins/tanstack-react-query.d.mts +8 -0
  163. package/sync-plugins/tanstack-react-query.d.ts +6 -1
  164. package/sync-plugins/tanstack-react-query.js +2 -2
  165. package/sync-plugins/tanstack-react-query.mjs +2 -2
  166. package/sync.d.mts +351 -0
  167. package/sync.d.ts +349 -9
  168. package/sync.js +910 -964
  169. package/sync.mjs +920 -974
  170. package/trace.d.mts +9 -0
  171. package/trace.d.ts +9 -4
  172. package/trace.js +72 -62
  173. package/trace.mjs +72 -62
  174. package/types/babel.d.ts +1 -12
  175. package/babel.js.map +0 -1
  176. package/config/enable$GetSet.js.map +0 -1
  177. package/config/enable$GetSet.mjs.map +0 -1
  178. package/config/enableReactComponents.js.map +0 -1
  179. package/config/enableReactComponents.mjs.map +0 -1
  180. package/config/enableReactNativeComponents.js.map +0 -1
  181. package/config/enableReactNativeComponents.mjs.map +0 -1
  182. package/config/enableReactTracking.js.map +0 -1
  183. package/config/enableReactTracking.mjs.map +0 -1
  184. package/config/enableReactUse.js.map +0 -1
  185. package/config/enableReactUse.mjs.map +0 -1
  186. package/config/enable_PeekAssign.js.map +0 -1
  187. package/config/enable_PeekAssign.mjs.map +0 -1
  188. package/helpers/pageHash.js.map +0 -1
  189. package/helpers/pageHash.mjs.map +0 -1
  190. package/helpers/pageHashParams.js.map +0 -1
  191. package/helpers/pageHashParams.mjs.map +0 -1
  192. package/helpers/time.js.map +0 -1
  193. package/helpers/time.mjs.map +0 -1
  194. package/helpers/trackHistory.js.map +0 -1
  195. package/helpers/trackHistory.mjs.map +0 -1
  196. package/helpers/undoRedo.js.map +0 -1
  197. package/helpers/undoRedo.mjs.map +0 -1
  198. package/history.d.ts +0 -1
  199. package/history.js +0 -24
  200. package/history.js.map +0 -1
  201. package/history.mjs +0 -22
  202. package/history.mjs.map +0 -1
  203. package/index.js.map +0 -1
  204. package/index.mjs.map +0 -1
  205. package/persist-plugins/async-storage.js.map +0 -1
  206. package/persist-plugins/async-storage.mjs.map +0 -1
  207. package/persist-plugins/indexeddb.js.map +0 -1
  208. package/persist-plugins/indexeddb.mjs.map +0 -1
  209. package/persist-plugins/local-storage.js.map +0 -1
  210. package/persist-plugins/local-storage.mjs.map +0 -1
  211. package/persist-plugins/mmkv.js.map +0 -1
  212. package/persist-plugins/mmkv.mjs.map +0 -1
  213. package/react-hooks/createObservableHook.js.map +0 -1
  214. package/react-hooks/createObservableHook.mjs.map +0 -1
  215. package/react-hooks/useHover.js.map +0 -1
  216. package/react-hooks/useHover.mjs.map +0 -1
  217. package/react-hooks/useMeasure.js.map +0 -1
  218. package/react-hooks/useMeasure.mjs.map +0 -1
  219. package/react-hooks/useObservableNextRouter.js.map +0 -1
  220. package/react-hooks/useObservableNextRouter.mjs.map +0 -1
  221. package/react.js.map +0 -1
  222. package/react.mjs.map +0 -1
  223. package/src/ObservableObject.ts +0 -1350
  224. package/src/ObservablePrimitive.ts +0 -62
  225. package/src/babel/index.ts +0 -83
  226. package/src/batching.ts +0 -357
  227. package/src/computed.ts +0 -18
  228. package/src/config/enable$GetSet.ts +0 -30
  229. package/src/config/enableReactComponents.ts +0 -26
  230. package/src/config/enableReactNativeComponents.ts +0 -102
  231. package/src/config/enableReactTracking.ts +0 -62
  232. package/src/config/enableReactUse.ts +0 -32
  233. package/src/config/enable_PeekAssign.ts +0 -31
  234. package/src/config.ts +0 -47
  235. package/src/createObservable.ts +0 -47
  236. package/src/event.ts +0 -26
  237. package/src/globals.ts +0 -235
  238. package/src/helpers/pageHash.ts +0 -41
  239. package/src/helpers/pageHashParams.ts +0 -55
  240. package/src/helpers/time.ts +0 -30
  241. package/src/helpers/trackHistory.ts +0 -29
  242. package/src/helpers/undoRedo.ts +0 -111
  243. package/src/helpers.ts +0 -231
  244. package/src/is.ts +0 -63
  245. package/src/linked.ts +0 -17
  246. package/src/observable.ts +0 -32
  247. package/src/observableInterfaces.ts +0 -151
  248. package/src/observableTypes.ts +0 -232
  249. package/src/observe.ts +0 -89
  250. package/src/old-plugins/firebase.ts +0 -1053
  251. package/src/onChange.ts +0 -146
  252. package/src/persist/configureObservablePersistence.ts +0 -7
  253. package/src/persist/fieldTransformer.ts +0 -149
  254. package/src/persist/observablePersistRemoteFunctionsAdapter.ts +0 -39
  255. package/src/persist/persistObservable.ts +0 -1034
  256. package/src/persist-plugins/async-storage.ts +0 -99
  257. package/src/persist-plugins/indexeddb.ts +0 -439
  258. package/src/persist-plugins/local-storage.ts +0 -86
  259. package/src/persist-plugins/mmkv.ts +0 -91
  260. package/src/proxy.ts +0 -28
  261. package/src/react/Computed.tsx +0 -8
  262. package/src/react/For.tsx +0 -116
  263. package/src/react/Memo.tsx +0 -4
  264. package/src/react/Reactive.tsx +0 -53
  265. package/src/react/Show.tsx +0 -33
  266. package/src/react/Switch.tsx +0 -43
  267. package/src/react/react-globals.ts +0 -3
  268. package/src/react/reactInterfaces.ts +0 -32
  269. package/src/react/reactive-observer.tsx +0 -210
  270. package/src/react/useComputed.ts +0 -36
  271. package/src/react/useEffectOnce.ts +0 -41
  272. package/src/react/useIsMounted.ts +0 -16
  273. package/src/react/useMount.ts +0 -15
  274. package/src/react/useObservable.ts +0 -24
  275. package/src/react/useObservableReducer.ts +0 -52
  276. package/src/react/useObservableState.ts +0 -30
  277. package/src/react/useObserve.ts +0 -54
  278. package/src/react/useObserveEffect.ts +0 -40
  279. package/src/react/usePauseProvider.tsx +0 -16
  280. package/src/react/useSelector.ts +0 -167
  281. package/src/react/useUnmount.ts +0 -8
  282. package/src/react/useWhen.ts +0 -9
  283. package/src/react-hooks/createObservableHook.ts +0 -53
  284. package/src/react-hooks/useHover.ts +0 -40
  285. package/src/react-hooks/useMeasure.ts +0 -48
  286. package/src/react-hooks/useObservableNextRouter.ts +0 -137
  287. package/src/retry.ts +0 -71
  288. package/src/setupTracking.ts +0 -26
  289. package/src/sync/activateSyncedNode.ts +0 -128
  290. package/src/sync/configureObservableSync.ts +0 -7
  291. package/src/sync/persistTypes.ts +0 -216
  292. package/src/sync/syncHelpers.ts +0 -180
  293. package/src/sync/syncObservable.ts +0 -1056
  294. package/src/sync/syncObservableAdapter.ts +0 -31
  295. package/src/sync/syncTypes.ts +0 -189
  296. package/src/sync/synced.ts +0 -21
  297. package/src/sync-plugins/crud.ts +0 -412
  298. package/src/sync-plugins/fetch.ts +0 -80
  299. package/src/sync-plugins/keel.ts +0 -495
  300. package/src/sync-plugins/supabase.ts +0 -249
  301. package/src/sync-plugins/tanstack-query.ts +0 -113
  302. package/src/sync-plugins/tanstack-react-query.ts +0 -12
  303. package/src/trace/traceHelpers.ts +0 -11
  304. package/src/trace/useTraceListeners.ts +0 -34
  305. package/src/trace/useTraceUpdates.ts +0 -24
  306. package/src/trace/useVerifyNotTracking.ts +0 -33
  307. package/src/trace/useVerifyOneRender.ts +0 -10
  308. package/src/trackSelector.ts +0 -52
  309. package/src/tracking.ts +0 -43
  310. package/src/types/babel.d.ts +0 -12
  311. package/src/when.ts +0 -75
  312. package/sync-plugins/crud.js.map +0 -1
  313. package/sync-plugins/crud.mjs.map +0 -1
  314. package/sync-plugins/fetch.js.map +0 -1
  315. package/sync-plugins/fetch.mjs.map +0 -1
  316. package/sync-plugins/keel.js.map +0 -1
  317. package/sync-plugins/keel.mjs.map +0 -1
  318. package/sync-plugins/supabase.js.map +0 -1
  319. package/sync-plugins/supabase.mjs.map +0 -1
  320. package/sync-plugins/tanstack-query.js.map +0 -1
  321. package/sync-plugins/tanstack-query.mjs.map +0 -1
  322. package/sync-plugins/tanstack-react-query.js.map +0 -1
  323. package/sync-plugins/tanstack-react-query.mjs.map +0 -1
  324. package/sync.js.map +0 -1
  325. package/sync.mjs.map +0 -1
  326. package/trace.js.map +0 -1
  327. package/trace.mjs.map +0 -1
@@ -1,96 +1,92 @@
1
1
  import { setAtPath, internal } from '@legendapp/state';
2
2
  import { MMKV } from 'react-native-mmkv';
3
3
 
4
- const symbolDefault = Symbol();
5
- const MetadataSuffix = '__m';
6
- const { safeParse, safeStringify } = internal;
7
- class ObservablePersistMMKV {
8
- constructor() {
9
- this.data = {};
10
- this.storages = new Map([
11
- [
12
- symbolDefault,
13
- new MMKV({
14
- id: `obsPersist`,
15
- }),
16
- ],
17
- ]);
4
+ // src/persist-plugins/mmkv.ts
5
+ var symbolDefault = Symbol();
6
+ var MetadataSuffix = "__m";
7
+ var { safeParse, safeStringify } = internal;
8
+ var ObservablePersistMMKV = class {
9
+ constructor() {
10
+ this.data = {};
11
+ this.storages = /* @__PURE__ */ new Map([
12
+ [
13
+ symbolDefault,
14
+ new MMKV({
15
+ id: `obsPersist`
16
+ })
17
+ ]
18
+ ]);
19
+ }
20
+ // Gets
21
+ getTable(table, init, config) {
22
+ const storage = this.getStorage(config);
23
+ if (this.data[table] === void 0) {
24
+ try {
25
+ const value = storage.getString(table);
26
+ this.data[table] = value ? safeParse(value) : init;
27
+ } catch (e) {
28
+ console.error("[legend-state] MMKV failed to parse", table);
29
+ }
18
30
  }
19
- // Gets
20
- getTable(table, init, config) {
21
- const storage = this.getStorage(config);
22
- if (this.data[table] === undefined) {
23
- try {
24
- const value = storage.getString(table);
25
- this.data[table] = value ? safeParse(value) : init;
26
- }
27
- catch (_a) {
28
- console.error('[legend-state] MMKV failed to parse', table);
29
- }
30
- }
31
- return this.data[table];
31
+ return this.data[table];
32
+ }
33
+ getMetadata(table, config) {
34
+ return this.getTable(table + MetadataSuffix, {}, config);
35
+ }
36
+ // Sets
37
+ set(table, changes, config) {
38
+ if (!this.data[table]) {
39
+ this.data[table] = {};
32
40
  }
33
- getMetadata(table, config) {
34
- return this.getTable(table + MetadataSuffix, {}, config);
41
+ for (let i = 0; i < changes.length; i++) {
42
+ const { path, valueAtPath, pathTypes } = changes[i];
43
+ this.data[table] = setAtPath(this.data[table], path, pathTypes, valueAtPath);
35
44
  }
36
- // Sets
37
- set(table, changes, config) {
38
- if (!this.data[table]) {
39
- this.data[table] = {};
40
- }
41
- for (let i = 0; i < changes.length; i++) {
42
- const { path, valueAtPath, pathTypes } = changes[i];
43
- this.data[table] = setAtPath(this.data[table], path, pathTypes, valueAtPath);
44
- }
45
- this.save(table, config);
45
+ this.save(table, config);
46
+ }
47
+ setMetadata(table, metadata, config) {
48
+ return this.setValue(table + MetadataSuffix, metadata, config);
49
+ }
50
+ deleteTable(table, config) {
51
+ const storage = this.getStorage(config);
52
+ delete this.data[table];
53
+ storage.delete(table);
54
+ }
55
+ deleteMetadata(table, config) {
56
+ this.deleteTable(table + MetadataSuffix, config);
57
+ }
58
+ // Private
59
+ getStorage(config) {
60
+ const { mmkv } = config;
61
+ if (mmkv) {
62
+ const key = JSON.stringify(mmkv);
63
+ let storage = this.storages.get(key);
64
+ if (!storage) {
65
+ storage = new MMKV(mmkv);
66
+ this.storages.set(key, storage);
67
+ }
68
+ return storage;
69
+ } else {
70
+ return this.storages.get(symbolDefault);
46
71
  }
47
- setMetadata(table, metadata, config) {
48
- return this.setValue(table + MetadataSuffix, metadata, config);
72
+ }
73
+ async setValue(table, value, config) {
74
+ this.data[table] = value;
75
+ this.save(table, config);
76
+ }
77
+ save(table, config) {
78
+ const storage = this.getStorage(config);
79
+ const v = this.data[table];
80
+ if (v !== void 0) {
81
+ try {
82
+ storage.set(table, safeStringify(v));
83
+ } catch (err) {
84
+ console.error(err);
85
+ }
86
+ } else {
87
+ storage.delete(table);
49
88
  }
50
- deleteTable(table, config) {
51
- const storage = this.getStorage(config);
52
- delete this.data[table];
53
- storage.delete(table);
54
- }
55
- deleteMetadata(table, config) {
56
- this.deleteTable(table + MetadataSuffix, config);
57
- }
58
- // Private
59
- getStorage(config) {
60
- const { mmkv } = config;
61
- if (mmkv) {
62
- const key = JSON.stringify(mmkv);
63
- let storage = this.storages.get(key);
64
- if (!storage) {
65
- storage = new MMKV(mmkv);
66
- this.storages.set(key, storage);
67
- }
68
- return storage;
69
- }
70
- else {
71
- return this.storages.get(symbolDefault);
72
- }
73
- }
74
- async setValue(table, value, config) {
75
- this.data[table] = value;
76
- this.save(table, config);
77
- }
78
- save(table, config) {
79
- const storage = this.getStorage(config);
80
- const v = this.data[table];
81
- if (v !== undefined) {
82
- try {
83
- storage.set(table, safeStringify(v));
84
- }
85
- catch (err) {
86
- console.error(err);
87
- }
88
- }
89
- else {
90
- storage.delete(table);
91
- }
92
- }
93
- }
89
+ }
90
+ };
94
91
 
95
92
  export { ObservablePersistMMKV };
96
- //# sourceMappingURL=mmkv.mjs.map
@@ -0,0 +1,5 @@
1
+ import { Observable } from '@legendapp/state';
2
+
3
+ declare function createObservableHook<TArgs extends any[], TRet>(fn: (...args: TArgs) => TRet): (...args: TArgs) => Observable<TRet>;
4
+
5
+ export { createObservableHook };
@@ -1,2 +1,5 @@
1
1
  import { Observable } from '@legendapp/state';
2
- export declare function createObservableHook<TArgs extends any[], TRet>(fn: (...args: TArgs) => TRet): (...args: TArgs) => Observable<TRet>;
2
+
3
+ declare function createObservableHook<TArgs extends any[], TRet>(fn: (...args: TArgs) => TRet): (...args: TArgs) => Observable<TRet>;
4
+
5
+ export { createObservableHook };
@@ -3,40 +3,39 @@
3
3
  var state = require('@legendapp/state');
4
4
  var React = require('react');
5
5
 
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var React__default = /*#__PURE__*/_interopDefault(React);
9
+
10
+ // src/react-hooks/createObservableHook.ts
6
11
  function overrideHooks(refObs) {
7
- // @ts-expect-error Types don't match React's expected types
8
- React.useState = function useState(initialState) {
9
- var _a;
10
- const obs = (_a = refObs.current) !== null && _a !== void 0 ? _a : (refObs.current = state.observable((state.isFunction(initialState) ? initialState() : initialState)));
11
- return [obs.get(), obs.set];
12
- };
13
- // @ts-expect-error Types don't match React's expected types
14
- React.useReducer = function useReducer(reducer, initializerArg, initializer) {
15
- var _a;
16
- const obs = (_a = refObs.current) !== null && _a !== void 0 ? _a : (refObs.current = state.observable(initializerArg !== undefined && state.isFunction(initializerArg)
17
- ? initializer(initializerArg)
18
- : initializerArg));
19
- const dispatch = (action) => {
20
- obs.set(reducer(obs.get(), action));
21
- };
22
- return [obs, dispatch];
12
+ React__default.default.useState = function useState(initialState) {
13
+ var _a;
14
+ const obs = (_a = refObs.current) != null ? _a : refObs.current = state.observable(state.isFunction(initialState) ? initialState() : initialState);
15
+ return [obs.get(), obs.set];
16
+ };
17
+ React__default.default.useReducer = function useReducer(reducer, initializerArg, initializer) {
18
+ var _a;
19
+ const obs = (_a = refObs.current) != null ? _a : refObs.current = state.observable(
20
+ initializerArg !== void 0 && state.isFunction(initializerArg) ? initializer(initializerArg) : initializerArg
21
+ );
22
+ const dispatch = (action) => {
23
+ obs.set(reducer(obs.get(), action));
23
24
  };
25
+ return [obs, dispatch];
26
+ };
24
27
  }
25
28
  function createObservableHook(fn) {
26
- const _useState = React.useState;
27
- const _useReducer = React.useReducer;
28
- return function (...args) {
29
- const refObs = React.useRef();
30
- // First override the built-in hooks to create/update observables
31
- overrideHooks(refObs);
32
- // Then call the original hook
33
- fn(...args);
34
- // And reset back to the built-in hooks
35
- React.useState = _useState;
36
- React.useReducer = _useReducer;
37
- return refObs.current;
38
- };
29
+ const _useState = React__default.default.useState;
30
+ const _useReducer = React__default.default.useReducer;
31
+ return function(...args) {
32
+ const refObs = React__default.default.useRef();
33
+ overrideHooks(refObs);
34
+ fn(...args);
35
+ React__default.default.useState = _useState;
36
+ React__default.default.useReducer = _useReducer;
37
+ return refObs.current;
38
+ };
39
39
  }
40
40
 
41
41
  exports.createObservableHook = createObservableHook;
42
- //# sourceMappingURL=createObservableHook.js.map
@@ -1,40 +1,35 @@
1
1
  import { observable, isFunction } from '@legendapp/state';
2
2
  import React from 'react';
3
3
 
4
+ // src/react-hooks/createObservableHook.ts
4
5
  function overrideHooks(refObs) {
5
- // @ts-expect-error Types don't match React's expected types
6
- React.useState = function useState(initialState) {
7
- var _a;
8
- const obs = (_a = refObs.current) !== null && _a !== void 0 ? _a : (refObs.current = observable((isFunction(initialState) ? initialState() : initialState)));
9
- return [obs.get(), obs.set];
10
- };
11
- // @ts-expect-error Types don't match React's expected types
12
- React.useReducer = function useReducer(reducer, initializerArg, initializer) {
13
- var _a;
14
- const obs = (_a = refObs.current) !== null && _a !== void 0 ? _a : (refObs.current = observable(initializerArg !== undefined && isFunction(initializerArg)
15
- ? initializer(initializerArg)
16
- : initializerArg));
17
- const dispatch = (action) => {
18
- obs.set(reducer(obs.get(), action));
19
- };
20
- return [obs, dispatch];
6
+ React.useState = function useState(initialState) {
7
+ var _a;
8
+ const obs = (_a = refObs.current) != null ? _a : refObs.current = observable(isFunction(initialState) ? initialState() : initialState);
9
+ return [obs.get(), obs.set];
10
+ };
11
+ React.useReducer = function useReducer(reducer, initializerArg, initializer) {
12
+ var _a;
13
+ const obs = (_a = refObs.current) != null ? _a : refObs.current = observable(
14
+ initializerArg !== void 0 && isFunction(initializerArg) ? initializer(initializerArg) : initializerArg
15
+ );
16
+ const dispatch = (action) => {
17
+ obs.set(reducer(obs.get(), action));
21
18
  };
19
+ return [obs, dispatch];
20
+ };
22
21
  }
23
22
  function createObservableHook(fn) {
24
- const _useState = React.useState;
25
- const _useReducer = React.useReducer;
26
- return function (...args) {
27
- const refObs = React.useRef();
28
- // First override the built-in hooks to create/update observables
29
- overrideHooks(refObs);
30
- // Then call the original hook
31
- fn(...args);
32
- // And reset back to the built-in hooks
33
- React.useState = _useState;
34
- React.useReducer = _useReducer;
35
- return refObs.current;
36
- };
23
+ const _useState = React.useState;
24
+ const _useReducer = React.useReducer;
25
+ return function(...args) {
26
+ const refObs = React.useRef();
27
+ overrideHooks(refObs);
28
+ fn(...args);
29
+ React.useState = _useState;
30
+ React.useReducer = _useReducer;
31
+ return refObs.current;
32
+ };
37
33
  }
38
34
 
39
35
  export { createObservableHook };
40
- //# sourceMappingURL=createObservableHook.mjs.map
@@ -0,0 +1,5 @@
1
+ import { Observable } from '@legendapp/state';
2
+
3
+ declare function useHover<T extends HTMLElement>(ref: React.MutableRefObject<T>): Observable<boolean>;
4
+
5
+ export { useHover };
@@ -1,3 +1,5 @@
1
- /// <reference types="react" />
2
- import type { Observable } from '@legendapp/state';
3
- export declare function useHover<T extends HTMLElement>(ref: React.MutableRefObject<T>): Observable<boolean>;
1
+ import { Observable } from '@legendapp/state';
2
+
3
+ declare function useHover<T extends HTMLElement>(ref: React.MutableRefObject<T>): Observable<boolean>;
4
+
5
+ export { useHover };
@@ -3,37 +3,37 @@
3
3
  var react = require('@legendapp/state/react');
4
4
  var react$1 = require('react');
5
5
 
6
+ // src/react-hooks/useHover.ts
6
7
  function useHover(ref) {
7
- const obs = react.useObservable(false);
8
- react$1.useEffect(() => {
9
- const handleMouseOver = () => obs.set(true);
10
- const handleMouseOut = (e) => {
11
- if (obs.peek() === true) {
12
- let parent = e.toElement;
13
- let foundRef = false;
14
- while (parent && !foundRef) {
15
- if (parent === ref.current) {
16
- foundRef = true;
17
- }
18
- parent = parent.parentElement;
19
- }
20
- if (!foundRef) {
21
- obs.set(false);
22
- }
23
- }
24
- };
25
- const node = ref.current;
26
- if (node) {
27
- node.addEventListener('mouseover', handleMouseOver);
28
- node.addEventListener('mouseout', handleMouseOut);
29
- return () => {
30
- node.removeEventListener('mouseover', handleMouseOver);
31
- node.removeEventListener('mouseout', handleMouseOut);
32
- };
8
+ const obs = react.useObservable(false);
9
+ react$1.useEffect(() => {
10
+ const handleMouseOver = () => obs.set(true);
11
+ const handleMouseOut = (e) => {
12
+ if (obs.peek() === true) {
13
+ let parent = e.toElement;
14
+ let foundRef = false;
15
+ while (parent && !foundRef) {
16
+ if (parent === ref.current) {
17
+ foundRef = true;
18
+ }
19
+ parent = parent.parentElement;
33
20
  }
34
- }, [ref.current]);
35
- return obs;
21
+ if (!foundRef) {
22
+ obs.set(false);
23
+ }
24
+ }
25
+ };
26
+ const node = ref.current;
27
+ if (node) {
28
+ node.addEventListener("mouseover", handleMouseOver);
29
+ node.addEventListener("mouseout", handleMouseOut);
30
+ return () => {
31
+ node.removeEventListener("mouseover", handleMouseOver);
32
+ node.removeEventListener("mouseout", handleMouseOut);
33
+ };
34
+ }
35
+ }, [ref.current]);
36
+ return obs;
36
37
  }
37
38
 
38
39
  exports.useHover = useHover;
39
- //# sourceMappingURL=useHover.js.map
@@ -1,37 +1,37 @@
1
1
  import { useObservable } from '@legendapp/state/react';
2
2
  import { useEffect } from 'react';
3
3
 
4
+ // src/react-hooks/useHover.ts
4
5
  function useHover(ref) {
5
- const obs = useObservable(false);
6
- useEffect(() => {
7
- const handleMouseOver = () => obs.set(true);
8
- const handleMouseOut = (e) => {
9
- if (obs.peek() === true) {
10
- let parent = e.toElement;
11
- let foundRef = false;
12
- while (parent && !foundRef) {
13
- if (parent === ref.current) {
14
- foundRef = true;
15
- }
16
- parent = parent.parentElement;
17
- }
18
- if (!foundRef) {
19
- obs.set(false);
20
- }
21
- }
22
- };
23
- const node = ref.current;
24
- if (node) {
25
- node.addEventListener('mouseover', handleMouseOver);
26
- node.addEventListener('mouseout', handleMouseOut);
27
- return () => {
28
- node.removeEventListener('mouseover', handleMouseOver);
29
- node.removeEventListener('mouseout', handleMouseOut);
30
- };
6
+ const obs = useObservable(false);
7
+ useEffect(() => {
8
+ const handleMouseOver = () => obs.set(true);
9
+ const handleMouseOut = (e) => {
10
+ if (obs.peek() === true) {
11
+ let parent = e.toElement;
12
+ let foundRef = false;
13
+ while (parent && !foundRef) {
14
+ if (parent === ref.current) {
15
+ foundRef = true;
16
+ }
17
+ parent = parent.parentElement;
31
18
  }
32
- }, [ref.current]);
33
- return obs;
19
+ if (!foundRef) {
20
+ obs.set(false);
21
+ }
22
+ }
23
+ };
24
+ const node = ref.current;
25
+ if (node) {
26
+ node.addEventListener("mouseover", handleMouseOver);
27
+ node.addEventListener("mouseout", handleMouseOut);
28
+ return () => {
29
+ node.removeEventListener("mouseover", handleMouseOver);
30
+ node.removeEventListener("mouseout", handleMouseOut);
31
+ };
32
+ }
33
+ }, [ref.current]);
34
+ return obs;
34
35
  }
35
36
 
36
37
  export { useHover };
37
- //# sourceMappingURL=useHover.mjs.map
@@ -0,0 +1,9 @@
1
+ import { ObservableObject } from '@legendapp/state';
2
+ import { RefObject } from 'react';
3
+
4
+ declare function useMeasure(ref: RefObject<HTMLElement>): ObservableObject<{
5
+ width: number | undefined;
6
+ height: number | undefined;
7
+ }>;
8
+
9
+ export { useMeasure };
@@ -1,6 +1,9 @@
1
- import type { ObservableObject } from '@legendapp/state';
1
+ import { ObservableObject } from '@legendapp/state';
2
2
  import { RefObject } from 'react';
3
- export declare function useMeasure(ref: RefObject<HTMLElement>): ObservableObject<{
3
+
4
+ declare function useMeasure(ref: RefObject<HTMLElement>): ObservableObject<{
4
5
  width: number | undefined;
5
6
  height: number | undefined;
6
7
  }>;
8
+
9
+ export { useMeasure };
@@ -3,42 +3,40 @@
3
3
  var react = require('@legendapp/state/react');
4
4
  var react$1 = require('react');
5
5
 
6
+ // src/react-hooks/useMeasure.ts
6
7
  function getSize(el) {
7
- return el
8
- ? {
9
- width: el.offsetWidth,
10
- height: el.offsetHeight,
11
- }
12
- : undefined;
8
+ return el ? {
9
+ width: el.offsetWidth,
10
+ height: el.offsetHeight
11
+ } : void 0;
13
12
  }
14
13
  function useMeasure(ref) {
15
- const obs = react.useObservable({
16
- width: undefined,
17
- height: undefined,
18
- });
19
- react$1.useLayoutEffect(() => {
20
- const el = ref.current;
21
- if (el) {
22
- const handleResize = () => {
23
- if (ref.current) {
24
- const oldSize = obs.peek();
25
- const newSize = getSize(ref.current);
26
- if (newSize && (newSize.width !== oldSize.width || newSize.height !== oldSize.height)) {
27
- obs.set(newSize);
28
- }
29
- }
30
- };
31
- handleResize();
32
- let resizeObserver = new ResizeObserver(handleResize);
33
- resizeObserver.observe(el);
34
- return () => {
35
- resizeObserver.disconnect();
36
- resizeObserver = undefined;
37
- };
14
+ const obs = react.useObservable({
15
+ width: void 0,
16
+ height: void 0
17
+ });
18
+ react$1.useLayoutEffect(() => {
19
+ const el = ref.current;
20
+ if (el) {
21
+ const handleResize = () => {
22
+ if (ref.current) {
23
+ const oldSize = obs.peek();
24
+ const newSize = getSize(ref.current);
25
+ if (newSize && (newSize.width !== oldSize.width || newSize.height !== oldSize.height)) {
26
+ obs.set(newSize);
27
+ }
38
28
  }
39
- }, [ref.current]);
40
- return obs;
29
+ };
30
+ handleResize();
31
+ let resizeObserver = new ResizeObserver(handleResize);
32
+ resizeObserver.observe(el);
33
+ return () => {
34
+ resizeObserver.disconnect();
35
+ resizeObserver = void 0;
36
+ };
37
+ }
38
+ }, [ref.current]);
39
+ return obs;
41
40
  }
42
41
 
43
42
  exports.useMeasure = useMeasure;
44
- //# sourceMappingURL=useMeasure.js.map
@@ -1,42 +1,40 @@
1
1
  import { useObservable } from '@legendapp/state/react';
2
2
  import { useLayoutEffect } from 'react';
3
3
 
4
+ // src/react-hooks/useMeasure.ts
4
5
  function getSize(el) {
5
- return el
6
- ? {
7
- width: el.offsetWidth,
8
- height: el.offsetHeight,
9
- }
10
- : undefined;
6
+ return el ? {
7
+ width: el.offsetWidth,
8
+ height: el.offsetHeight
9
+ } : void 0;
11
10
  }
12
11
  function useMeasure(ref) {
13
- const obs = useObservable({
14
- width: undefined,
15
- height: undefined,
16
- });
17
- useLayoutEffect(() => {
18
- const el = ref.current;
19
- if (el) {
20
- const handleResize = () => {
21
- if (ref.current) {
22
- const oldSize = obs.peek();
23
- const newSize = getSize(ref.current);
24
- if (newSize && (newSize.width !== oldSize.width || newSize.height !== oldSize.height)) {
25
- obs.set(newSize);
26
- }
27
- }
28
- };
29
- handleResize();
30
- let resizeObserver = new ResizeObserver(handleResize);
31
- resizeObserver.observe(el);
32
- return () => {
33
- resizeObserver.disconnect();
34
- resizeObserver = undefined;
35
- };
12
+ const obs = useObservable({
13
+ width: void 0,
14
+ height: void 0
15
+ });
16
+ useLayoutEffect(() => {
17
+ const el = ref.current;
18
+ if (el) {
19
+ const handleResize = () => {
20
+ if (ref.current) {
21
+ const oldSize = obs.peek();
22
+ const newSize = getSize(ref.current);
23
+ if (newSize && (newSize.width !== oldSize.width || newSize.height !== oldSize.height)) {
24
+ obs.set(newSize);
25
+ }
36
26
  }
37
- }, [ref.current]);
38
- return obs;
27
+ };
28
+ handleResize();
29
+ let resizeObserver = new ResizeObserver(handleResize);
30
+ resizeObserver.observe(el);
31
+ return () => {
32
+ resizeObserver.disconnect();
33
+ resizeObserver = void 0;
34
+ };
35
+ }
36
+ }, [ref.current]);
37
+ return obs;
39
38
  }
40
39
 
41
40
  export { useMeasure };
42
- //# sourceMappingURL=useMeasure.mjs.map