academe-kit 0.8.6 → 0.8.7
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.cjs +47 -50
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +47 -50
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -6046,7 +6046,6 @@ const AcademeAuthProvider = ({ realm, hubUrl, children, clientId, keycloakUrl, a
|
|
|
6046
6046
|
},
|
|
6047
6047
|
automaticSilentRenew: true,
|
|
6048
6048
|
};
|
|
6049
|
-
console.log("oidc ->", oidcConfig);
|
|
6050
6049
|
return (jsx(AuthProvider, { ...oidcConfig, children: jsx(SecurityProvider, { hubUrl: hubUrl, apiBaseUrl: apiBaseUrl, skipApiUserFetch: skipApiUserFetch, children: children }) }));
|
|
6051
6050
|
};
|
|
6052
6051
|
const SecurityContext = createContext({
|
|
@@ -6095,7 +6094,7 @@ const SecurityProvider = ({ apiBaseUrl = "https://stg-api.academe.com.br", skipA
|
|
|
6095
6094
|
const isAuthenticated = auth.isAuthenticated || !!accessToken;
|
|
6096
6095
|
const isLoading = auth.isLoading;
|
|
6097
6096
|
const activeNavigator = auth.activeNavigator;
|
|
6098
|
-
|
|
6097
|
+
auth.user?.profile;
|
|
6099
6098
|
const currentTokenRef = useRef(undefined);
|
|
6100
6099
|
// Efeito para sincronizar o token do auth com o state
|
|
6101
6100
|
// e também verificar cookies periodicamente
|
|
@@ -6203,15 +6202,14 @@ const SecurityProvider = ({ apiBaseUrl = "https://stg-api.academe.com.br", skipA
|
|
|
6203
6202
|
}
|
|
6204
6203
|
}, [accessToken, isLoading, isAuthenticated]);
|
|
6205
6204
|
const getKeycloakUser = useCallback(() => {
|
|
6206
|
-
const profile = userProfile;
|
|
6207
6205
|
return {
|
|
6208
|
-
email:
|
|
6209
|
-
name:
|
|
6210
|
-
lastName:
|
|
6206
|
+
email: decodedAccessToken?.email || "",
|
|
6207
|
+
name: decodedAccessToken?.given_name || "",
|
|
6208
|
+
lastName: decodedAccessToken?.family_name || "",
|
|
6211
6209
|
avatar_url: decodedAccessToken?.avatar_url,
|
|
6212
6210
|
tm_token: decodedAccessToken?.tm_token,
|
|
6213
6211
|
};
|
|
6214
|
-
}, [
|
|
6212
|
+
}, [decodedAccessToken]);
|
|
6215
6213
|
const hasRealmRole = useCallback((role) => {
|
|
6216
6214
|
return decodedAccessToken?.realm_access?.roles?.includes(role) ?? false;
|
|
6217
6215
|
}, [decodedAccessToken]);
|
|
@@ -6227,51 +6225,50 @@ const SecurityProvider = ({ apiBaseUrl = "https://stg-api.academe.com.br", skipA
|
|
|
6227
6225
|
return Object.values(decodedAccessToken.resource_access).some((resource) => resource.roles?.includes(role));
|
|
6228
6226
|
}, [decodedAccessToken]);
|
|
6229
6227
|
// --- 4. Fetch de Dados do Usuário (Backend) ---
|
|
6230
|
-
useEffect(
|
|
6231
|
-
|
|
6232
|
-
|
|
6233
|
-
|
|
6234
|
-
|
|
6235
|
-
|
|
6236
|
-
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
const academeUser = {
|
|
6247
|
-
...response.data.data,
|
|
6248
|
-
keycloakUser: getKeycloakUser(),
|
|
6249
|
-
};
|
|
6250
|
-
setCurrentUser(academeUser);
|
|
6251
|
-
}
|
|
6252
|
-
}
|
|
6253
|
-
catch (error) {
|
|
6254
|
-
console.error("[SecurityProvider] Error fetching user data:", error);
|
|
6255
|
-
}
|
|
6228
|
+
// Refs para controlar fetch sem depender de useEffect (componente pode desmontar antes dos efeitos executarem)
|
|
6229
|
+
const hasFetchedUserRef = useRef(false);
|
|
6230
|
+
const isFetchingUserRef = useRef(false);
|
|
6231
|
+
if (!isAuthenticated) {
|
|
6232
|
+
hasFetchedUserRef.current = false;
|
|
6233
|
+
}
|
|
6234
|
+
if (isAuthenticated &&
|
|
6235
|
+
!hasFetchedUserRef.current &&
|
|
6236
|
+
!isFetchingUserRef.current) {
|
|
6237
|
+
if (skipApiUserFetch) {
|
|
6238
|
+
if (decodedAccessToken) {
|
|
6239
|
+
hasFetchedUserRef.current = true;
|
|
6240
|
+
const academeUser = {
|
|
6241
|
+
keycloakUser: getKeycloakUser(),
|
|
6242
|
+
};
|
|
6243
|
+
setCurrentUser({ ...academeUser, id: userProfileSub || "" });
|
|
6256
6244
|
}
|
|
6257
|
-
|
|
6258
|
-
|
|
6259
|
-
|
|
6245
|
+
}
|
|
6246
|
+
else {
|
|
6247
|
+
hasFetchedUserRef.current = true;
|
|
6248
|
+
isFetchingUserRef.current = true;
|
|
6249
|
+
services.user
|
|
6250
|
+
.getMe()
|
|
6251
|
+
.then((response) => {
|
|
6252
|
+
if (response?.data?.data) {
|
|
6253
|
+
const academeUser = {
|
|
6254
|
+
...response.data.data,
|
|
6255
|
+
keycloakUser: getKeycloakUser(),
|
|
6256
|
+
};
|
|
6257
|
+
setCurrentUser(academeUser);
|
|
6260
6258
|
}
|
|
6261
|
-
}
|
|
6262
|
-
|
|
6263
|
-
|
|
6264
|
-
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
|
-
|
|
6268
|
-
|
|
6269
|
-
|
|
6270
|
-
|
|
6271
|
-
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
]);
|
|
6259
|
+
})
|
|
6260
|
+
.catch((error) => {
|
|
6261
|
+
console.error("[SecurityProvider] Error fetching user data:", error);
|
|
6262
|
+
hasFetchedUserRef.current = false;
|
|
6263
|
+
})
|
|
6264
|
+
.finally(() => {
|
|
6265
|
+
isFetchingUserRef.current = false;
|
|
6266
|
+
});
|
|
6267
|
+
}
|
|
6268
|
+
}
|
|
6269
|
+
if (!isAuthenticated && !isLoading && currentUser !== null) {
|
|
6270
|
+
setCurrentUser(null);
|
|
6271
|
+
}
|
|
6275
6272
|
const refreshUserData = useCallback(async () => {
|
|
6276
6273
|
setIsRefreshing(true);
|
|
6277
6274
|
if (isAuthenticated) {
|