react-query-firebase 1.2.2 → 1.2.3

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,5 +1,7 @@
1
1
  import { useCallback, useEffect, useState } from "react";
2
2
  import { useCurrentUser } from "./useCurrentUser";
3
+ import { onIdTokenChanged } from "firebase/auth";
4
+ import { useAuth } from "./useAuth";
3
5
  /**
4
6
  * Custom hook to manage an ID token for the current user.
5
7
  * This hook provides an `idToken` value and a `refresh` function to manually refresh the token.
@@ -9,6 +11,7 @@ import { useCurrentUser } from "./useCurrentUser";
9
11
  * @returns {Function} refresh - A function to refresh the ID token.
10
12
  */
11
13
  export const useIdToken = () => {
14
+ const auth = useAuth();
12
15
  const currentUser = useCurrentUser();
13
16
  const [idToken, setIdToken] = useState("");
14
17
  const callback = useCallback(async () => {
@@ -29,6 +32,19 @@ export const useIdToken = () => {
29
32
  useEffect(() => {
30
33
  callback();
31
34
  }, [currentUser?.uid ?? ""]);
35
+ useEffect(() => {
36
+ const unsubscribe = onIdTokenChanged(auth, (user) => {
37
+ if (user) {
38
+ user.getIdToken().then((idToken) => {
39
+ setIdToken(idToken);
40
+ });
41
+ }
42
+ else {
43
+ setIdToken("");
44
+ }
45
+ });
46
+ return () => unsubscribe();
47
+ }, [idToken]);
32
48
  return {
33
49
  idToken,
34
50
  refresh
package/package.json CHANGED
@@ -60,5 +60,5 @@
60
60
  "docs:build": "vitepress build docs",
61
61
  "docs:preview": "vitepress preview docs"
62
62
  },
63
- "version": "1.2.2"
63
+ "version": "1.2.3"
64
64
  }
@@ -1,5 +1,7 @@
1
1
  import { useCallback, useEffect, useState } from "react";
2
2
  import { useCurrentUser } from "./useCurrentUser";
3
+ import { onIdTokenChanged } from "firebase/auth";
4
+ import { useAuth } from "./useAuth";
3
5
 
4
6
  /**
5
7
  * Custom hook to manage an ID token for the current user.
@@ -10,6 +12,8 @@ import { useCurrentUser } from "./useCurrentUser";
10
12
  * @returns {Function} refresh - A function to refresh the ID token.
11
13
  */
12
14
  export const useIdToken = () => {
15
+ const auth = useAuth();
16
+
13
17
  const currentUser = useCurrentUser();
14
18
  const [idToken, setIdToken] = useState("");
15
19
 
@@ -36,6 +40,20 @@ export const useIdToken = () => {
36
40
  callback();
37
41
  }, [currentUser?.uid ?? ""]);
38
42
 
43
+ useEffect(() => {
44
+ const unsubscribe = onIdTokenChanged(auth, (user) => {
45
+ if (user) {
46
+ user.getIdToken().then((idToken) => {
47
+ setIdToken(idToken);
48
+ });
49
+ } else {
50
+ setIdToken("");
51
+ }
52
+ });
53
+
54
+ return () => unsubscribe();
55
+ }, [idToken]);
56
+
39
57
  return {
40
58
  idToken,
41
59
  refresh