@legendapp/state 3.0.0-alpha.0 → 3.0.0-alpha.2

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 (323) hide show
  1. package/.DS_Store +0 -0
  2. package/CHANGELOG.md +1 -827
  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 +6 -0
  95. package/helpers/trackHistory.js +21 -0
  96. package/helpers/trackHistory.mjs +19 -0
  97. package/helpers/undoRedo.d.mts +37 -0
  98. package/helpers/undoRedo.d.ts +37 -0
  99. package/helpers/undoRedo.js +68 -0
  100. package/helpers/undoRedo.mjs +66 -0
  101. package/index.d.mts +404 -0
  102. package/index.d.ts +371 -28
  103. package/index.js +2003 -2164
  104. package/index.mjs +2003 -2164
  105. package/package.json +254 -185
  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 -348
  113. package/persist-plugins/indexeddb.mjs +331 -348
  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 +909 -962
  169. package/sync.mjs +919 -972
  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/history.d.ts +0 -1
  195. package/history.js +0 -24
  196. package/history.js.map +0 -1
  197. package/history.mjs +0 -22
  198. package/history.mjs.map +0 -1
  199. package/index.js.map +0 -1
  200. package/index.mjs.map +0 -1
  201. package/persist-plugins/async-storage.js.map +0 -1
  202. package/persist-plugins/async-storage.mjs.map +0 -1
  203. package/persist-plugins/indexeddb.js.map +0 -1
  204. package/persist-plugins/indexeddb.mjs.map +0 -1
  205. package/persist-plugins/local-storage.js.map +0 -1
  206. package/persist-plugins/local-storage.mjs.map +0 -1
  207. package/persist-plugins/mmkv.js.map +0 -1
  208. package/persist-plugins/mmkv.mjs.map +0 -1
  209. package/react-hooks/createObservableHook.js.map +0 -1
  210. package/react-hooks/createObservableHook.mjs.map +0 -1
  211. package/react-hooks/useHover.js.map +0 -1
  212. package/react-hooks/useHover.mjs.map +0 -1
  213. package/react-hooks/useMeasure.js.map +0 -1
  214. package/react-hooks/useMeasure.mjs.map +0 -1
  215. package/react-hooks/useObservableNextRouter.js.map +0 -1
  216. package/react-hooks/useObservableNextRouter.mjs.map +0 -1
  217. package/react.js.map +0 -1
  218. package/react.mjs.map +0 -1
  219. package/src/ObservableObject.ts +0 -1350
  220. package/src/ObservablePrimitive.ts +0 -62
  221. package/src/babel/index.ts +0 -83
  222. package/src/batching.ts +0 -357
  223. package/src/computed.ts +0 -18
  224. package/src/config/enable$GetSet.ts +0 -30
  225. package/src/config/enableReactComponents.ts +0 -26
  226. package/src/config/enableReactNativeComponents.ts +0 -102
  227. package/src/config/enableReactTracking.ts +0 -62
  228. package/src/config/enableReactUse.ts +0 -32
  229. package/src/config/enable_PeekAssign.ts +0 -31
  230. package/src/config.ts +0 -47
  231. package/src/createObservable.ts +0 -47
  232. package/src/event.ts +0 -26
  233. package/src/globals.ts +0 -235
  234. package/src/helpers/pageHash.ts +0 -41
  235. package/src/helpers/pageHashParams.ts +0 -55
  236. package/src/helpers/time.ts +0 -30
  237. package/src/helpers.ts +0 -231
  238. package/src/history/trackHistory.ts +0 -29
  239. package/src/history/undoRedo.ts +0 -111
  240. package/src/is.ts +0 -63
  241. package/src/linked.ts +0 -17
  242. package/src/observable.ts +0 -32
  243. package/src/observableInterfaces.ts +0 -151
  244. package/src/observableTypes.ts +0 -232
  245. package/src/observe.ts +0 -89
  246. package/src/old-plugins/firebase.ts +0 -1053
  247. package/src/onChange.ts +0 -146
  248. package/src/persist/configureObservablePersistence.ts +0 -7
  249. package/src/persist/fieldTransformer.ts +0 -149
  250. package/src/persist/observablePersistRemoteFunctionsAdapter.ts +0 -39
  251. package/src/persist/persistObservable.ts +0 -1034
  252. package/src/persist-plugins/async-storage.ts +0 -99
  253. package/src/persist-plugins/indexeddb.ts +0 -432
  254. package/src/persist-plugins/local-storage.ts +0 -86
  255. package/src/persist-plugins/mmkv.ts +0 -91
  256. package/src/proxy.ts +0 -28
  257. package/src/react/Computed.tsx +0 -8
  258. package/src/react/For.tsx +0 -116
  259. package/src/react/Memo.tsx +0 -4
  260. package/src/react/Reactive.tsx +0 -53
  261. package/src/react/Show.tsx +0 -33
  262. package/src/react/Switch.tsx +0 -43
  263. package/src/react/react-globals.ts +0 -3
  264. package/src/react/reactInterfaces.ts +0 -32
  265. package/src/react/reactive-observer.tsx +0 -210
  266. package/src/react/useComputed.ts +0 -36
  267. package/src/react/useEffectOnce.ts +0 -41
  268. package/src/react/useIsMounted.ts +0 -16
  269. package/src/react/useMount.ts +0 -15
  270. package/src/react/useObservable.ts +0 -24
  271. package/src/react/useObservableReducer.ts +0 -52
  272. package/src/react/useObservableState.ts +0 -30
  273. package/src/react/useObserve.ts +0 -54
  274. package/src/react/useObserveEffect.ts +0 -40
  275. package/src/react/usePauseProvider.tsx +0 -16
  276. package/src/react/useSelector.ts +0 -167
  277. package/src/react/useUnmount.ts +0 -8
  278. package/src/react/useWhen.ts +0 -9
  279. package/src/react-hooks/createObservableHook.ts +0 -53
  280. package/src/react-hooks/useHover.ts +0 -40
  281. package/src/react-hooks/useMeasure.ts +0 -48
  282. package/src/react-hooks/useObservableNextRouter.ts +0 -137
  283. package/src/retry.ts +0 -71
  284. package/src/setupTracking.ts +0 -26
  285. package/src/sync/activateSyncedNode.ts +0 -128
  286. package/src/sync/configureObservableSync.ts +0 -7
  287. package/src/sync/persistTypes.ts +0 -216
  288. package/src/sync/syncHelpers.ts +0 -180
  289. package/src/sync/syncObservable.ts +0 -1056
  290. package/src/sync/syncObservableAdapter.ts +0 -31
  291. package/src/sync/syncTypes.ts +0 -189
  292. package/src/sync/synced.ts +0 -21
  293. package/src/sync-plugins/crud.ts +0 -412
  294. package/src/sync-plugins/fetch.ts +0 -80
  295. package/src/sync-plugins/keel.ts +0 -495
  296. package/src/sync-plugins/supabase.ts +0 -249
  297. package/src/sync-plugins/tanstack-query.ts +0 -113
  298. package/src/sync-plugins/tanstack-react-query.ts +0 -12
  299. package/src/trace/traceHelpers.ts +0 -11
  300. package/src/trace/useTraceListeners.ts +0 -34
  301. package/src/trace/useTraceUpdates.ts +0 -24
  302. package/src/trace/useVerifyNotTracking.ts +0 -33
  303. package/src/trace/useVerifyOneRender.ts +0 -10
  304. package/src/trackSelector.ts +0 -52
  305. package/src/tracking.ts +0 -43
  306. package/src/types/babel.d.ts +0 -12
  307. package/src/when.ts +0 -75
  308. package/sync-plugins/crud.js.map +0 -1
  309. package/sync-plugins/crud.mjs.map +0 -1
  310. package/sync-plugins/fetch.js.map +0 -1
  311. package/sync-plugins/fetch.mjs.map +0 -1
  312. package/sync-plugins/keel.js.map +0 -1
  313. package/sync-plugins/keel.mjs.map +0 -1
  314. package/sync-plugins/supabase.js.map +0 -1
  315. package/sync-plugins/supabase.mjs.map +0 -1
  316. package/sync-plugins/tanstack-query.js.map +0 -1
  317. package/sync-plugins/tanstack-query.mjs.map +0 -1
  318. package/sync-plugins/tanstack-react-query.js.map +0 -1
  319. package/sync-plugins/tanstack-react-query.mjs.map +0 -1
  320. package/sync.js.map +0 -1
  321. package/sync.mjs.map +0 -1
  322. package/trace.js.map +0 -1
  323. 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