@colisweb/rescript-toolkit 5.0.0 → 5.0.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@colisweb/rescript-toolkit",
3
- "version": "5.0.0",
3
+ "version": "5.0.2",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "clean": "rescript clean",
@@ -24,7 +24,6 @@ let useUpdateEffect = (fn, deps) => {
24
24
  , deps)
25
25
  }
26
26
 
27
- let useIsMounted = ReactUse.useMountedState
28
27
  let useTimeoutFn = ReactUse.useTimeoutFn
29
28
  let useDebounce = ReactUse.useDebounce
30
29
  let useDebounce2 = ReactUse.useDebounce2
@@ -198,7 +197,7 @@ let useRequest = (~debounce=true, fn, deps) => {
198
197
  let lastCallId = React.useRef(0)
199
198
  let canceled = React.useRef(false)
200
199
  let (state, set) = React.useState(() => NotAsked)
201
- let isMounted = useIsMounted()
200
+ let isMounted = ReactUse.useMountedState(.)
202
201
 
203
202
  let trigger = React.useCallback(args => {
204
203
  lastCallId.current = lastCallId.current->SafeIncrement.increment
@@ -327,29 +326,13 @@ external useLocalStorageState: (
327
326
  localstorageStateOptions<'state>,
328
327
  ) => ('state, ('state => 'state) => unit) = "default"
329
328
 
330
- // ----------------------
331
- // useIsMounted
332
- // ----------------------
333
-
334
- let useIsMounted = () => {
335
- let mountedRef = React.useRef(false)
336
- let get = React.useCallback(() => mountedRef.current, [])
337
-
338
- React.useEffectOnEveryRender(() => {
339
- mountedRef.current = true
340
- Some(() => mountedRef.current = false)
341
- })
342
-
343
- get
344
- }
345
-
346
329
  external promiseErrorToJsObj: Js.Promise.error => Js.Exn.t = "%identity"
347
330
 
348
331
  let usePromise = (~debounce=true, fn, deps) => {
349
332
  let lastCallId = React.useRef(0)
350
333
  let canceled = React.useRef(false)
351
334
  let (state, set) = React.useState(() => NotAsked)
352
- let isMounted = useIsMounted()
335
+ let isMounted = ReactUse.useMountedState()
353
336
 
354
337
  let trigger = React.useCallback(args => {
355
338
  lastCallId.current = lastCallId.current->SafeIncrement.increment
@@ -384,7 +367,7 @@ let usePromiseV2 = (~debounce=true, fn, deps) => {
384
367
  let lastCallId = React.useRef(0)
385
368
  let canceled = React.useRef(false)
386
369
  let (state, set) = React.useState(() => NotAsked)
387
- let isMounted = useIsMounted()
370
+ let isMounted = ReactUse.useMountedState()
388
371
 
389
372
  let trigger = React.useCallback(() => {
390
373
  lastCallId.current = lastCallId.current->SafeIncrement.increment
@@ -431,7 +414,7 @@ let usePromiseV3 = (~debounce=true, fn, deps) => {
431
414
  let lastCallId = React.useRef(0)
432
415
  let canceled = React.useRef(false)
433
416
  let (state, set) = React.useState(() => NotAsked)
434
- let isMounted = useIsMounted()
417
+ let isMounted = ReactUse.useMountedState()
435
418
 
436
419
  let trigger = React.useCallback(() => {
437
420
  lastCallId.current = lastCallId.current->SafeIncrement.increment
@@ -12,9 +12,17 @@ let make = (~worker: Msw.worker, ~workerOptions: Msw.startOptions={}, ~className
12
12
 
13
13
  React.useLayoutEffect(() => {
14
14
  if mockEnabled {
15
- worker->Msw.start(workerOptions)
16
- setWorkerStarted(_ => true)
17
- Browser.LocalStorage.setItem(localStorageKey, Js.Nullable.return("true"))
15
+ worker
16
+ ->Msw.start(workerOptions)
17
+ ->Promise.Js.toResult
18
+ ->Promise.tapOk(_ => {
19
+ setWorkerStarted(_ => true)
20
+ Browser.LocalStorage.setItem(localStorageKey, Js.Nullable.return("true"))
21
+ })
22
+ ->Promise.tapError(err => {
23
+ Toolkit.BrowserLogger.debug(err)
24
+ })
25
+ ->ignore
18
26
  } else {
19
27
  worker->Msw.stop
20
28
  setWorkerStarted(_ => false)
@@ -8,7 +8,7 @@ type rec startOptions = {serviceWorker?: serviceWorker, quiet?: bool}
8
8
  and serviceWorker = {url: string}
9
9
 
10
10
  @send
11
- external start: (worker, startOptions) => unit = "start"
11
+ external start: (worker, startOptions) => Promise.Js.t<unit, unit> = "start"
12
12
  @send
13
13
  external stop: worker => unit = "stop"
14
14
 
@@ -26,7 +26,7 @@ external useTimeoutFn: (unit => unit, int) => (Js.Nullable.t<bool>, unit => unit
26
26
  external useFirstMountState: unit => bool = "useFirstMountState"
27
27
 
28
28
  @module("react-use")
29
- external useMountedState: unit => unit => bool = "useMountedState"
29
+ external useMountedState: (. unit) => (. unit) => bool = "useMountedState"
30
30
 
31
31
  @module("react-use")
32
32
  external useUpdateEffect: (unit => option<unit => unit>, array<'a>) => unit = "useUpdateEffect"