@pinnacle0/web-ui 0.4.29 → 0.4.30

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.
@@ -0,0 +1,10 @@
1
+ /**
2
+ * delay value update when value meet condition `when`
3
+ */
4
+ export declare function useDelayedWhen<T>(value: T, when: (value: T) => boolean, exceeded?: number): T;
5
+ export declare function useDelayed<T>(value: T, exceeded: number): T;
6
+ /**
7
+ * Only set loading state to true when loading duration is longer than given ms,
8
+ * in order to prevent loading ui flickering
9
+ */
10
+ export declare function useDelayedLoading(value: boolean, exceeded?: number): boolean;
@@ -0,0 +1,48 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ import React from "react";
18
+ /**
19
+ * delay value update when value meet condition `when`
20
+ */
21
+ export function useDelayedWhen(value, when, exceeded) {
22
+ if (exceeded === void 0) { exceeded = 120; }
23
+ var _a = __read(React.useState(value), 2), delayed = _a[0], setDelayed = _a[1];
24
+ var whenRef = React.useRef(when);
25
+ whenRef.current = when;
26
+ React.useEffect(function () {
27
+ if (value === whenRef.current(value)) {
28
+ var id_1 = window.setTimeout(function () { return setDelayed(value); }, exceeded);
29
+ return function () { return window.clearTimeout(id_1); };
30
+ }
31
+ else {
32
+ setDelayed(value);
33
+ }
34
+ }, [value, exceeded]);
35
+ return delayed;
36
+ }
37
+ export function useDelayed(value, exceeded) {
38
+ return useDelayedWhen(value, function () { return true; }, exceeded);
39
+ }
40
+ /**
41
+ * Only set loading state to true when loading duration is longer than given ms,
42
+ * in order to prevent loading ui flickering
43
+ */
44
+ export function useDelayedLoading(value, exceeded) {
45
+ if (exceeded === void 0) { exceeded = 120; }
46
+ return useDelayedWhen(value, function (_) { return _ === true; }, exceeded);
47
+ }
48
+ //# sourceMappingURL=useDelayed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDelayed.js","sourceRoot":"","sources":["../../src/hooks/useDelayed.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,UAAU,cAAc,CAAI,KAAQ,EAAE,IAA2B,EAAE,QAAsB;IAAtB,yBAAA,EAAA,cAAsB;IACrF,IAAA,KAAA,OAAwB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAA,EAA5C,OAAO,QAAA,EAAE,UAAU,QAAyB,CAAC;IAEpD,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAEvB,KAAK,CAAC,SAAS,CAAC;QACZ,IAAI,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAClC,IAAM,IAAE,GAAG,MAAM,CAAC,UAAU,CAAC,cAAM,OAAA,UAAU,CAAC,KAAK,CAAC,EAAjB,CAAiB,EAAE,QAAQ,CAAC,CAAC;YAChE,OAAO,cAAM,OAAA,MAAM,CAAC,YAAY,CAAC,IAAE,CAAC,EAAvB,CAAuB,CAAC;SACxC;aAAM;YACH,UAAU,CAAC,KAAK,CAAC,CAAC;SACrB;IACL,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,KAAQ,EAAE,QAAgB;IACpD,OAAO,cAAc,CAAI,KAAK,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,QAAsB;IAAtB,yBAAA,EAAA,cAAsB;IACpE,OAAO,cAAc,CAAC,KAAK,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,IAAI,EAAV,CAAU,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pinnacle0/web-ui",
3
- "version": "0.4.29",
3
+ "version": "0.4.30",
4
4
  "author": "Pinnacle",
5
5
  "license": "MIT",
6
6
  "sideEffects": [