react-firebase-ql 4.2.0 → 4.2.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.
@@ -3,3 +3,4 @@ export { useCount } from '../client/useCounter';
3
3
  export { useFetch } from '../client/useFetch';
4
4
  export { useStream } from '../client/useStream';
5
5
  export { AUTHProvider, AUTHContext } from '../client/AuthProvider.provider';
6
+ export { useCountdown } from '../client/useCountdown.hooks';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AUTHContext = exports.AUTHProvider = exports.useStream = exports.useFetch = exports.useCount = exports.useAuth = void 0;
3
+ exports.useCountdown = exports.AUTHContext = exports.AUTHProvider = exports.useStream = exports.useFetch = exports.useCount = exports.useAuth = void 0;
4
4
  var useAuth_1 = require("../client/useAuth");
5
5
  Object.defineProperty(exports, "useAuth", { enumerable: true, get: function () { return useAuth_1.useAuth; } });
6
6
  var useCounter_1 = require("../client/useCounter");
@@ -12,4 +12,6 @@ Object.defineProperty(exports, "useStream", { enumerable: true, get: function ()
12
12
  var AuthProvider_provider_1 = require("../client/AuthProvider.provider");
13
13
  Object.defineProperty(exports, "AUTHProvider", { enumerable: true, get: function () { return AuthProvider_provider_1.AUTHProvider; } });
14
14
  Object.defineProperty(exports, "AUTHContext", { enumerable: true, get: function () { return AuthProvider_provider_1.AUTHContext; } });
15
+ var useCountdown_hooks_1 = require("../client/useCountdown.hooks");
16
+ Object.defineProperty(exports, "useCountdown", { enumerable: true, get: function () { return useCountdown_hooks_1.useCountdown; } });
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAAnC,kGAAA,OAAO,OAAA;AAChB,mDAAgD;AAAvC,sGAAA,QAAQ,OAAA;AACjB,+CAA8C;AAArC,oGAAA,QAAQ,OAAA;AACjB,iDAAgD;AAAvC,sGAAA,SAAS,OAAA;AAClB,yEAA2E;AAAlE,qHAAA,YAAY,OAAA;AAAE,oHAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAAnC,kGAAA,OAAO,OAAA;AAChB,mDAAgD;AAAvC,sGAAA,QAAQ,OAAA;AACjB,+CAA8C;AAArC,oGAAA,QAAQ,OAAA;AACjB,iDAAgD;AAAvC,sGAAA,SAAS,OAAA;AAClB,yEAA4E;AAAnE,qHAAA,YAAY,OAAA;AAAE,oHAAA,WAAW,OAAA;AAClC,mEAA4D;AAAnD,kHAAA,YAAY,OAAA"}
@@ -5,29 +5,26 @@ exports.useCountdown = void 0;
5
5
  const react_1 = require("react");
6
6
  const useCountdown = (key) => {
7
7
  const [remaining, setRemaining] = (0, react_1.useState)(0);
8
- const [endTime, setEndTime] = (0, react_1.useState)(null);
9
8
  (0, react_1.useEffect)(() => {
10
- if (typeof window === 'undefined')
9
+ if (typeof window === "undefined")
11
10
  return;
12
- const stored = window.localStorage.getItem(key);
13
- setEndTime(stored ? Number(stored) : null);
14
- }, [key]);
15
- (0, react_1.useEffect)(() => {
16
- if (!endTime) {
17
- setRemaining(0);
18
- return;
19
- }
20
- const tick = () => {
11
+ const interval = setInterval(() => {
12
+ const stored = localStorage.getItem(key);
13
+ if (!stored) {
14
+ setRemaining(0);
15
+ return;
16
+ }
17
+ const endTime = Number(stored);
21
18
  const diff = Math.max(0, endTime - Date.now());
22
- setRemaining(diff);
23
- if (diff === 0) {
19
+ if (diff <= 0) {
24
20
  localStorage.removeItem(key);
21
+ setRemaining(0);
22
+ return;
25
23
  }
26
- };
27
- tick();
28
- const interval = setInterval(tick, 1000);
24
+ setRemaining(diff);
25
+ }, 1000);
29
26
  return () => clearInterval(interval);
30
- }, [endTime, key]);
27
+ }, [key]);
31
28
  return {
32
29
  isActive: remaining > 0,
33
30
  seconds: Math.ceil(remaining / 1000),
@@ -1 +1 @@
1
- {"version":3,"file":"useCountdown.hooks.js","sourceRoot":"","sources":["../../src/client/useCountdown.hooks.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAEb,iCAA4C;AAErC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IAG5D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,EAAE,CAAC;QACP,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnB,OAAO;QACL,QAAQ,EAAE,SAAS,GAAG,CAAC;QACvB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC;AArCW,QAAA,YAAY,gBAqCvB"}
1
+ {"version":3,"file":"useCountdown.hooks.js","sourceRoot":"","sources":["../../src/client/useCountdown.hooks.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAEb,iCAA4C;AAErC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAE9C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,YAAY,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE/C,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACd,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC7B,YAAY,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO;QACL,QAAQ,EAAE,SAAS,GAAG,CAAC;QACvB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC;AAjCW,QAAA,YAAY,gBAiCvB"}
@@ -3,4 +3,5 @@ export { useCount } from '../client/useCounter';
3
3
  export { useFetch } from '../client/useFetch';
4
4
  export { useStream } from '../client/useStream';
5
5
  export { AUTHProvider, AUTHContext } from '../client/AuthProvider.provider';
6
+ export { useCountdown } from '../client/useCountdown.hooks';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC"}
@@ -2,29 +2,26 @@
2
2
  import { useEffect, useState } from "react";
3
3
  export const useCountdown = (key) => {
4
4
  const [remaining, setRemaining] = useState(0);
5
- const [endTime, setEndTime] = useState(null);
6
5
  useEffect(() => {
7
- if (typeof window === 'undefined')
6
+ if (typeof window === "undefined")
8
7
  return;
9
- const stored = window.localStorage.getItem(key);
10
- setEndTime(stored ? Number(stored) : null);
11
- }, [key]);
12
- useEffect(() => {
13
- if (!endTime) {
14
- setRemaining(0);
15
- return;
16
- }
17
- const tick = () => {
8
+ const interval = setInterval(() => {
9
+ const stored = localStorage.getItem(key);
10
+ if (!stored) {
11
+ setRemaining(0);
12
+ return;
13
+ }
14
+ const endTime = Number(stored);
18
15
  const diff = Math.max(0, endTime - Date.now());
19
- setRemaining(diff);
20
- if (diff === 0) {
16
+ if (diff <= 0) {
21
17
  localStorage.removeItem(key);
18
+ setRemaining(0);
19
+ return;
22
20
  }
23
- };
24
- tick();
25
- const interval = setInterval(tick, 1000);
21
+ setRemaining(diff);
22
+ }, 1000);
26
23
  return () => clearInterval(interval);
27
- }, [endTime, key]);
24
+ }, [key]);
28
25
  return {
29
26
  isActive: remaining > 0,
30
27
  seconds: Math.ceil(remaining / 1000),
@@ -1 +1 @@
1
- {"version":3,"file":"useCountdown.hooks.js","sourceRoot":"","sources":["../../src/client/useCountdown.hooks.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAG5D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,EAAE,CAAC;QACP,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnB,OAAO;QACL,QAAQ,EAAE,SAAS,GAAG,CAAC;QACvB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useCountdown.hooks.js","sourceRoot":"","sources":["../../src/client/useCountdown.hooks.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,YAAY,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE/C,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACd,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC7B,YAAY,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO;QACL,QAAQ,EAAE,SAAS,GAAG,CAAC;QACvB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-firebase-ql",
3
- "version": "4.2.0",
3
+ "version": "4.2.2",
4
4
  "description": "A React helper library that simplifies using Firebase with side effects and live queries.",
5
5
  "main": "dist/index.js",
6
6
  "module": "esm/index.js",
@@ -3,4 +3,5 @@ export { useAuth } from '../client/useAuth';
3
3
  export { useCount } from '../client/useCounter';
4
4
  export { useFetch } from '../client/useFetch';
5
5
  export { useStream } from '../client/useStream';
6
- export { AUTHProvider, AUTHContext } from '../client/AuthProvider.provider'
6
+ export { AUTHProvider, AUTHContext } from '../client/AuthProvider.provider';
7
+ export { useCountdown } from '../client/useCountdown.hooks';
@@ -4,39 +4,35 @@ import { useEffect, useState } from "react";
4
4
 
5
5
  export const useCountdown = (key: string) => {
6
6
  const [remaining, setRemaining] = useState(0);
7
- const [endTime, setEndTime] = useState<number | null>(null);
8
7
 
9
- // runs only on client after mount
10
8
  useEffect(() => {
11
- if (typeof window === 'undefined') return;
9
+ if (typeof window === "undefined") return;
12
10
 
13
- const stored = window.localStorage.getItem(key);
14
- setEndTime(stored ? Number(stored) : null);
15
- }, [key]);
11
+ const interval = setInterval(() => {
12
+ const stored = localStorage.getItem(key);
16
13
 
17
- useEffect(() => {
18
- if (!endTime) {
19
- setRemaining(0);
20
- return;
21
- }
14
+ if (!stored) {
15
+ setRemaining(0);
16
+ return;
17
+ }
22
18
 
23
- const tick = () => {
19
+ const endTime = Number(stored);
24
20
  const diff = Math.max(0, endTime - Date.now());
25
- setRemaining(diff);
26
21
 
27
- if (diff === 0) {
22
+ if (diff <= 0) {
28
23
  localStorage.removeItem(key);
24
+ setRemaining(0);
25
+ return;
29
26
  }
30
- };
31
27
 
32
- tick();
33
- const interval = setInterval(tick, 1000);
28
+ setRemaining(diff);
29
+ }, 1000);
34
30
 
35
31
  return () => clearInterval(interval);
36
- }, [endTime, key]);
32
+ }, [key]);
37
33
 
38
34
  return {
39
35
  isActive: remaining > 0,
40
36
  seconds: Math.ceil(remaining / 1000),
41
37
  };
42
- };
38
+ };