@firecms/user_management 3.0.0-canary.37 → 3.0.0-canary.39
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/dist/index.es.js +415 -409
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +5 -5
- package/src/hooks/useBuildFirestoreUserManagement.tsx +11 -15
@@ -1,18 +1,17 @@
|
|
1
|
-
import React, { useCallback, useEffect
|
1
|
+
import React, { useCallback, useEffect } from "react";
|
2
2
|
import {
|
3
3
|
addDoc,
|
4
4
|
collection,
|
5
5
|
deleteDoc,
|
6
6
|
doc,
|
7
7
|
DocumentSnapshot,
|
8
|
-
Firestore,
|
9
8
|
getFirestore,
|
10
9
|
onSnapshot,
|
11
10
|
setDoc
|
12
11
|
} from "firebase/firestore";
|
13
12
|
import { FirebaseApp } from "firebase/app";
|
14
13
|
import { UserManagement } from "../types";
|
15
|
-
import { Authenticator, PermissionsBuilder, Role, User } from "@firecms/core";
|
14
|
+
import { Authenticator, PermissionsBuilder, Role, User, useTraceUpdate } from "@firecms/core";
|
16
15
|
import { resolveUserRolePermissions } from "../utils";
|
17
16
|
|
18
17
|
type UserWithRoleIds = User & { roles: string[] };
|
@@ -73,8 +72,6 @@ export function useBuildFirestoreUserManagement({
|
|
73
72
|
includeCollectionConfigPermissions
|
74
73
|
}: UserManagementParams): UserManagement {
|
75
74
|
|
76
|
-
const firestoreRef = useRef<Firestore>();
|
77
|
-
|
78
75
|
const [rolesLoading, setRolesLoading] = React.useState<boolean>(true);
|
79
76
|
const [usersLoading, setUsersLoading] = React.useState<boolean>(true);
|
80
77
|
const [roles, setRoles] = React.useState<Role[]>([]);
|
@@ -90,11 +87,6 @@ export function useBuildFirestoreUserManagement({
|
|
90
87
|
|
91
88
|
const loading = rolesLoading || usersLoading;
|
92
89
|
|
93
|
-
useEffect(() => {
|
94
|
-
if (!firebaseApp) return;
|
95
|
-
firestoreRef.current = getFirestore(firebaseApp);
|
96
|
-
}, [firebaseApp]);
|
97
|
-
|
98
90
|
useEffect(() => {
|
99
91
|
if (!firebaseApp || !rolesPath) return;
|
100
92
|
const firestore = getFirestore(firebaseApp);
|
@@ -145,7 +137,8 @@ export function useBuildFirestoreUserManagement({
|
|
145
137
|
}, [firebaseApp, usersPath]);
|
146
138
|
|
147
139
|
const saveUser = useCallback(async (user: User): Promise<User> => {
|
148
|
-
|
140
|
+
if (!firebaseApp) throw Error("useFirestoreConfigurationPersistence Firebase not initialised");
|
141
|
+
const firestore = getFirestore(firebaseApp);
|
149
142
|
if (!firestore || !usersPath) throw Error("useFirestoreConfigurationPersistence Firestore not initialised");
|
150
143
|
console.debug("Persisting user", user);
|
151
144
|
const roleIds = user.roles?.map(r => r.id);
|
@@ -165,7 +158,8 @@ export function useBuildFirestoreUserManagement({
|
|
165
158
|
}, [usersPath]);
|
166
159
|
|
167
160
|
const saveRole = useCallback((role: Role): Promise<void> => {
|
168
|
-
|
161
|
+
if (!firebaseApp) throw Error("useFirestoreConfigurationPersistence Firebase not initialised");
|
162
|
+
const firestore = getFirestore(firebaseApp);
|
169
163
|
if (!firestore || !rolesPath) throw Error("useFirestoreConfigurationPersistence Firestore not initialised");
|
170
164
|
console.debug("Persisting role", role);
|
171
165
|
const {
|
@@ -177,7 +171,8 @@ export function useBuildFirestoreUserManagement({
|
|
177
171
|
}, [rolesPath]);
|
178
172
|
|
179
173
|
const deleteUser = useCallback(async (user: User): Promise<void> => {
|
180
|
-
|
174
|
+
if (!firebaseApp) throw Error("useFirestoreConfigurationPersistence Firebase not initialised");
|
175
|
+
const firestore = getFirestore(firebaseApp);
|
181
176
|
if (!firestore || !usersPath) throw Error("useFirestoreConfigurationPersistence Firestore not initialised");
|
182
177
|
console.debug("Deleting", user);
|
183
178
|
const { uid } = user;
|
@@ -185,7 +180,8 @@ export function useBuildFirestoreUserManagement({
|
|
185
180
|
}, [usersPath]);
|
186
181
|
|
187
182
|
const deleteRole = useCallback((role: Role): Promise<void> => {
|
188
|
-
|
183
|
+
if (!firebaseApp) throw Error("useFirestoreConfigurationPersistence Firebase not initialised");
|
184
|
+
const firestore = getFirestore(firebaseApp);
|
189
185
|
if (!firestore || !rolesPath) throw Error("useFirestoreConfigurationPersistence Firestore not initialised");
|
190
186
|
console.debug("Deleting", role);
|
191
187
|
const { id } = role;
|
@@ -230,7 +226,7 @@ export function useBuildFirestoreUserManagement({
|
|
230
226
|
}
|
231
227
|
|
232
228
|
throw Error("Could not find a user with the provided email");
|
233
|
-
}, [loading,
|
229
|
+
}, [loading, userIds])
|
234
230
|
|
235
231
|
return {
|
236
232
|
loading,
|