@kakadu/components 3.10.0 → 3.10.1

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react"),C=new Map,M=new Map,L=new Map,p=new Map;function R(t,s){let e=L.get(t);return e||(e=new Set,L.set(t,e)),e.add(s),()=>{e==null||e.delete(s),e&&e.size===0&&L.delete(t)}}function I(t,s){M.set(t,{timestamp:Date.now(),response:s});const e=L.get(t);if(e)for(const a of e)a(s)}function G(t,s){let e=p.get(t);return e||(e=new Set,p.set(t,e)),e.add(s),()=>{e==null||e.delete(s),e&&e.size===0&&p.delete(t)}}function U(t){M.delete(t);const s=p.get(t);if(s)for(const e of s)e()}function q(t){const[s,e]=n.useState(!1),[a,v]=n.useState(),[f,d]=n.useState(),g=n.useCallback(async(b,S)=>{try{d(void 0),e(!0);const l=await fetch(b,S),u=t?await t(l):l;return v(u),u}catch(l){const u=l instanceof Error?l:new Error("Unknown error");throw d(u),u}finally{e(!1)}},[t]);return n.useMemo(()=>({isLoading:s,fetch:g,response:a,error:f}),[s,g,a,f])}function k(t){const s=n.useCallback(async e=>{const a=await e.json();return t?t(a):a},[t]);return q(s)}function J(t,s,e,a){const{cacheLifetime:v=1e3*30,shouldFetch:f=!0}=a??{},[d,g]=n.useState(0),[b,S]=n.useState(()=>!!t),[l,u]=n.useState(()=>!!t&&f),o=n.useMemo(()=>t?JSON.stringify({url:t,options:s}):"",[t,s]),w=n.useCallback(()=>{if(!o)return;const c=M.get(o);if(c){if(Date.now()-c.timestamp>v){M.delete(o);return}return c.response}},[o,v]),[F,E]=n.useState(()=>w()),[y,m]=n.useState(),h=n.useMemo(()=>{var c;return((c=s==null?void 0:s.method)==null?void 0:c.toUpperCase())??"GET"},[s])==="GET";n.useEffect(()=>{if(!h)return;let c;const i=()=>{clearTimeout(c),!document.hidden&&(c=setTimeout(()=>{g(r=>r+1)},0))};return document.addEventListener("visibilitychange",i),window.addEventListener("focus",i),()=>{document.removeEventListener("visibilitychange",i),window.removeEventListener("focus",i),clearTimeout(c)}},[h]),n.useEffect(()=>{if(!t||!o){S(!1),E(void 0);return}const c=w();S(!0),c===void 0?(E(void 0),m(void 0)):(E(c),m(void 0));const i=R(o,r=>{E(r),m(void 0)});return()=>{i()}},[t,o,w]),n.useEffect(()=>{if(!t||!o)return;const c=G(o,()=>{g(i=>i+1)});return()=>{c()}},[t,o]),n.useEffect(()=>{if(!t||!o||d<0||!f){u(!1);return}if(h&&w()!==void 0){u(!1);return}let c=!0;m(void 0),u(!0);let i=h&&C.has(o)?C.get(o):void 0;if(!i){const r=fetch(t,s);C.set(o,r),r.then(()=>{C.delete(o)}),i=r}return i.then(async r=>{if(c){const j=e?await e(r):r;h&&I(o,j),E(j),m(void 0)}}).catch(r=>{c&&m(r)}).finally(()=>{c&&u(!1)}),()=>{c=!1}},[t,o,d,f,h,w,s,e]);const T=n.useCallback(()=>{h&&o&&U(o)},[o,h]);return n.useMemo(()=>({isReady:b,isLoading:l,response:F,error:y,purge:T}),[b,l,F,y,T])}function z(t,s,e,a){const v=n.useCallback(async f=>{const d=await f.json();return e?e(d):d},[e]);return J(t,s,v,a)}exports.default=J;exports.useFetcher=q;exports.useJsonFetch=z;exports.useJsonFetcher=k;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react"),C=new Map,M=new Map,L=new Map,p=new Map;function R(t,s){let e=L.get(t);return e||(e=new Set,L.set(t,e)),e.add(s),()=>{e==null||e.delete(s),e&&e.size===0&&L.delete(t)}}function I(t,s){M.set(t,{timestamp:Date.now(),response:s});const e=L.get(t);if(e)for(const a of e)a(s)}function G(t,s){let e=p.get(t);return e||(e=new Set,p.set(t,e)),e.add(s),()=>{e==null||e.delete(s),e&&e.size===0&&p.delete(t)}}function U(t){M.delete(t);const s=p.get(t);if(s)for(const e of s)e()}function q(t){const[s,e]=n.useState(!1),[a,v]=n.useState(),[f,d]=n.useState(),g=n.useCallback(async(b,S)=>{try{d(void 0),e(!0);const l=await fetch(b,S),u=t?await t(l):l;return v(u),u}catch(l){const u=l instanceof Error?l:new Error("Unknown error");throw d(u),u}finally{e(!1)}},[t]);return n.useMemo(()=>({isLoading:s,fetch:g,response:a,error:f}),[s,g,a,f])}function k(t){const s=n.useCallback(async e=>{const a=await e.json();return t?t(a):a},[t]);return q(s)}function J(t,s,e,a){const{cacheLifetime:v=1e3*30,shouldFetch:f=!0}=a??{},[d,g]=n.useState(0),[b,S]=n.useState(()=>!!t),[l,u]=n.useState(()=>!!t&&f),o=n.useMemo(()=>t?JSON.stringify({url:t,options:s}):"",[t,s]),w=n.useCallback(()=>{if(!o)return;const c=M.get(o);if(c){if(Date.now()-c.timestamp>v){M.delete(o);return}return c.response}},[o,v]),[F,E]=n.useState(()=>w()),[y,m]=n.useState(),h=n.useMemo(()=>{var c;return((c=s==null?void 0:s.method)==null?void 0:c.toUpperCase())??"GET"},[s])==="GET";n.useEffect(()=>{if(!h)return;let c;const i=()=>{clearTimeout(c),!document.hidden&&(c=setTimeout(()=>{g(r=>r+1)},0))};return document.addEventListener("visibilitychange",i),window.addEventListener("focus",i),()=>{document.removeEventListener("visibilitychange",i),window.removeEventListener("focus",i),clearTimeout(c)}},[h]),n.useEffect(()=>{if(!t||!o){S(!1),E(void 0);return}const c=w();S(!0),c===void 0?(E(void 0),m(void 0)):(E(c),m(void 0));const i=R(o,r=>{E(r),m(void 0)});return()=>{i()}},[t,o,w]),n.useEffect(()=>{if(!t||!o)return;const c=G(o,()=>{g(i=>i+1)});return()=>{c()}},[t,o]),n.useEffect(()=>{if(!t||!o||d<0||!f){u(!1);return}if(h&&w()!==void 0){u(!1);return}let c=!0;m(void 0),u(!0);let i=h&&C.has(o)?C.get(o):void 0;if(!i){const r=fetch(t,s);C.set(o,r),r.then(()=>{C.delete(o)}),i=r}return i.then(async r=>{if(c){const j=e?await e(r):r;h&&I(o,j),E(j),m(void 0)}}).catch(r=>{c&&m(r)}).finally(()=>{c&&u(!1)}),()=>{c=!1}},[t,o,d,f,h,w,s,e]);const T=n.useCallback(()=>{h&&o&&U(o)},[o,h]);return n.useMemo(()=>({isReady:b,isLoading:l,response:F,error:y,purge:T}),[b,l,F,y,T])}function z(t,s,e,a){const v=n.useCallback(async f=>{const d=await f.clone().json();return e?e(d):d},[e]);return J(t,s,v,a)}exports.default=J;exports.useFetcher=q;exports.useJsonFetch=z;exports.useJsonFetcher=k;
@@ -27,12 +27,12 @@ function z(t) {
27
27
  e();
28
28
  }
29
29
  function B(t) {
30
- const [n, e] = v(!1), [i, m] = v(), [u, f] = v(), g = p(
30
+ const [n, e] = v(!1), [i, l] = v(), [u, f] = v(), w = p(
31
31
  async (L, C) => {
32
32
  try {
33
33
  f(void 0), e(!0);
34
34
  const d = await fetch(L, C), a = t ? await t(d) : d;
35
- return m(a), a;
35
+ return l(a), a;
36
36
  } catch (d) {
37
37
  const a = d instanceof Error ? d : new Error("Unknown error");
38
38
  throw f(a), a;
@@ -43,8 +43,8 @@ function B(t) {
43
43
  [t]
44
44
  );
45
45
  return F(
46
- () => ({ isLoading: n, fetch: g, response: i, error: u }),
47
- [n, g, i, u]
46
+ () => ({ isLoading: n, fetch: w, response: i, error: u }),
47
+ [n, w, i, u]
48
48
  );
49
49
  }
50
50
  function N(t) {
@@ -58,21 +58,21 @@ function N(t) {
58
58
  return B(n);
59
59
  }
60
60
  function D(t, n, e, i) {
61
- const { cacheLifetime: m = 1e3 * 30, shouldFetch: u = !0 } = i ?? {}, [f, g] = v(0), [L, C] = v(() => !!t), [d, a] = v(() => !!t && u), s = F(
61
+ const { cacheLifetime: l = 1e3 * 30, shouldFetch: u = !0 } = i ?? {}, [f, w] = v(0), [L, C] = v(() => !!t), [d, a] = v(() => !!t && u), s = F(
62
62
  () => t ? JSON.stringify({ url: t, options: n }) : "",
63
63
  [t, n]
64
- ), l = p(() => {
64
+ ), g = p(() => {
65
65
  if (!s)
66
66
  return;
67
67
  const o = T.get(s);
68
68
  if (o) {
69
- if (Date.now() - o.timestamp > m) {
69
+ if (Date.now() - o.timestamp > l) {
70
70
  T.delete(s);
71
71
  return;
72
72
  }
73
73
  return o.response;
74
74
  }
75
- }, [s, m]), [j, E] = v(() => l()), [I, w] = v(), h = F(
75
+ }, [s, l]), [j, E] = v(() => g()), [I, m] = v(), h = F(
76
76
  () => {
77
77
  var o;
78
78
  return ((o = n == null ? void 0 : n.method) == null ? void 0 : o.toUpperCase()) ?? "GET";
@@ -83,32 +83,32 @@ function D(t, n, e, i) {
83
83
  if (!h)
84
84
  return;
85
85
  let o;
86
- const c = () => {
86
+ const r = () => {
87
87
  clearTimeout(o), !document.hidden && (o = setTimeout(() => {
88
- g((r) => r + 1);
88
+ w((c) => c + 1);
89
89
  }, 0));
90
90
  };
91
- return document.addEventListener("visibilitychange", c), window.addEventListener("focus", c), () => {
92
- document.removeEventListener("visibilitychange", c), window.removeEventListener("focus", c), clearTimeout(o);
91
+ return document.addEventListener("visibilitychange", r), window.addEventListener("focus", r), () => {
92
+ document.removeEventListener("visibilitychange", r), window.removeEventListener("focus", r), clearTimeout(o);
93
93
  };
94
94
  }, [h]), b(() => {
95
95
  if (!t || !s) {
96
96
  C(!1), E(void 0);
97
97
  return;
98
98
  }
99
- const o = l();
100
- C(!0), o === void 0 ? (E(void 0), w(void 0)) : (E(o), w(void 0));
101
- const c = G(s, (r) => {
102
- E(r), w(void 0);
99
+ const o = g();
100
+ C(!0), o === void 0 ? (E(void 0), m(void 0)) : (E(o), m(void 0));
101
+ const r = G(s, (c) => {
102
+ E(c), m(void 0);
103
103
  });
104
104
  return () => {
105
- c();
105
+ r();
106
106
  };
107
- }, [t, s, l]), b(() => {
107
+ }, [t, s, g]), b(() => {
108
108
  if (!t || !s)
109
109
  return;
110
110
  const o = U(s, () => {
111
- g((c) => c + 1);
111
+ w((r) => r + 1);
112
112
  });
113
113
  return () => {
114
114
  o();
@@ -118,32 +118,32 @@ function D(t, n, e, i) {
118
118
  a(!1);
119
119
  return;
120
120
  }
121
- if (h && l() !== void 0) {
121
+ if (h && g() !== void 0) {
122
122
  a(!1);
123
123
  return;
124
124
  }
125
125
  let o = !0;
126
- w(void 0), a(!0);
127
- let c = h && y.has(s) ? y.get(s) : void 0;
128
- if (!c) {
129
- const r = fetch(t, n);
130
- y.set(s, r), r.then(() => {
126
+ m(void 0), a(!0);
127
+ let r = h && y.has(s) ? y.get(s) : void 0;
128
+ if (!r) {
129
+ const c = fetch(t, n);
130
+ y.set(s, c), c.then(() => {
131
131
  y.delete(s);
132
- }), c = r;
132
+ }), r = c;
133
133
  }
134
- return c.then(async (r) => {
134
+ return r.then(async (c) => {
135
135
  if (o) {
136
- const q = e ? await e(r) : r;
137
- h && J(s, q), E(q), w(void 0);
136
+ const q = e ? await e(c) : c;
137
+ h && J(s, q), E(q), m(void 0);
138
138
  }
139
- }).catch((r) => {
140
- o && w(r);
139
+ }).catch((c) => {
140
+ o && m(c);
141
141
  }).finally(() => {
142
142
  o && a(!1);
143
143
  }), () => {
144
144
  o = !1;
145
145
  };
146
- }, [t, s, f, u, h, l, n, e]);
146
+ }, [t, s, f, u, h, g, n, e]);
147
147
  const S = p(() => {
148
148
  h && s && z(s);
149
149
  }, [s, h]);
@@ -153,14 +153,14 @@ function D(t, n, e, i) {
153
153
  );
154
154
  }
155
155
  function O(t, n, e, i) {
156
- const m = p(
156
+ const l = p(
157
157
  async (u) => {
158
- const f = await u.json();
158
+ const f = await u.clone().json();
159
159
  return e ? e(f) : f;
160
160
  },
161
161
  [e]
162
162
  );
163
- return D(t, n, m, i);
163
+ return D(t, n, l, i);
164
164
  }
165
165
  export {
166
166
  D as default,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kakadu/components",
3
- "version": "3.10.0",
3
+ "version": "3.10.1",
4
4
  "description": "Kakadu components library",
5
5
  "license": "MIT",
6
6
  "main": "./build/index.js",