@digitaldefiance/express-suite-react-components 2.1.52 → 2.1.54
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/README.md
CHANGED
package/package.json
CHANGED
|
@@ -139,8 +139,13 @@ export type AuthProviderProps = {
|
|
|
139
139
|
baseUrl: string;
|
|
140
140
|
constants: IConstants;
|
|
141
141
|
eciesConfig: IECIESConfig;
|
|
142
|
+
/**
|
|
143
|
+
* Optional callback to handle navigation after logout
|
|
144
|
+
* If not provided, logout will only clear auth state without navigation
|
|
145
|
+
*/
|
|
146
|
+
onLogout?: () => void;
|
|
142
147
|
};
|
|
143
148
|
export declare const AuthContext: import("react").Context<AuthContextData>;
|
|
144
|
-
export declare const AuthProvider: ({ children, baseUrl, constants, eciesConfig }: AuthProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
149
|
+
export declare const AuthProvider: ({ children, baseUrl, constants, eciesConfig, onLogout }: AuthProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
145
150
|
export declare const useAuth: () => AuthContextData;
|
|
146
151
|
//# sourceMappingURL=AuthProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/contexts/AuthProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,cAAc,EAE/B,WAAW,EACX,YAAY,EACZ,YAAY,EAIb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAEL,SAAS,EAMV,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/contexts/AuthProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
6
6
|
const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
|
|
7
7
|
const react_1 = require("react");
|
|
8
|
-
const react_router_dom_1 = require("react-router-dom");
|
|
9
8
|
const I18nProvider_1 = require("./I18nProvider");
|
|
10
9
|
const authService_1 = require("../services/authService");
|
|
11
10
|
const authenticatedApi_1 = require("../services/authenticatedApi");
|
|
@@ -13,9 +12,10 @@ const useExpiringValue_1 = require("../hooks/useExpiringValue");
|
|
|
13
12
|
const useLocalStorage_1 = require("../hooks/useLocalStorage");
|
|
14
13
|
const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
|
|
15
14
|
exports.AuthContext = (0, react_1.createContext)({});
|
|
16
|
-
const AuthProviderInner = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
15
|
+
const AuthProviderInner = ({ children, baseUrl, constants, eciesConfig, onLogout }) => {
|
|
17
16
|
const { changeLanguage, currentLanguage, t, tComponent } = (0, I18nProvider_1.useI18n)();
|
|
18
17
|
const authService = (0, react_1.useMemo)(() => (0, authService_1.createAuthService)(constants, baseUrl, eciesConfig), [constants, baseUrl, eciesConfig]);
|
|
18
|
+
const authenticatedApi = (0, react_1.useMemo)(() => (0, authenticatedApi_1.createAuthenticatedApiClient)(baseUrl), [baseUrl]);
|
|
19
19
|
// Use the custom hooks for expiring values
|
|
20
20
|
const mnemonicManager = (0, useExpiringValue_1.useExpiringValue)(constants.DefaultExpireMemoryMnemonicSeconds, 'mnemonicExpirationSeconds');
|
|
21
21
|
const walletManager = (0, useExpiringValue_1.useExpiringValue)(constants.DefaultExpireMemoryWalletSeconds, 'walletExpirationSeconds');
|
|
@@ -32,7 +32,6 @@ const AuthProviderInner = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
|
32
32
|
const [isCheckingAuth, setIsCheckingAuth] = (0, react_1.useState)(true);
|
|
33
33
|
const [token, setToken] = (0, react_1.useState)(null);
|
|
34
34
|
const [authState, setAuthState] = (0, react_1.useState)(0);
|
|
35
|
-
const navigate = (0, react_router_dom_1.useNavigate)();
|
|
36
35
|
const [currencyCode, setCurrencyCode] = (0, react_1.useState)(() => {
|
|
37
36
|
return new i18n_lib_1.CurrencyCode(localStorage.getItem('currencyCode') ?? i18n_lib_1.DefaultCurrencyCode);
|
|
38
37
|
});
|
|
@@ -252,8 +251,11 @@ const AuthProviderInner = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
|
252
251
|
clearWallet();
|
|
253
252
|
setIsAuthenticated(false);
|
|
254
253
|
setAuthState((prev) => prev + 1);
|
|
255
|
-
|
|
256
|
-
|
|
254
|
+
// Call the optional navigation callback if provided
|
|
255
|
+
if (onLogout) {
|
|
256
|
+
onLogout();
|
|
257
|
+
}
|
|
258
|
+
}, [onLogout, clearMnemonic, clearWallet]);
|
|
257
259
|
const verifyToken = (0, react_1.useCallback)(async (token) => {
|
|
258
260
|
const requestUser = await authService.verifyToken(token);
|
|
259
261
|
if (typeof requestUser === 'object' && 'error' in requestUser) {
|
|
@@ -295,7 +297,18 @@ const AuthProviderInner = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
|
295
297
|
setIsAuthenticated(!!newUser);
|
|
296
298
|
};
|
|
297
299
|
const setLanguageAndUpdateUser = async (newLanguage) => {
|
|
300
|
+
// Change the language in the i18n context
|
|
298
301
|
changeLanguage(newLanguage);
|
|
302
|
+
// Update the user's language preference on the server if authenticated
|
|
303
|
+
const token = localStorage.getItem('authToken');
|
|
304
|
+
if (token) {
|
|
305
|
+
try {
|
|
306
|
+
await authenticatedApi.post('/user/language', { language: newLanguage });
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
console.error('Failed to update user language:', error);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
299
312
|
};
|
|
300
313
|
const setCurrencyCodeAndUpdateStorage = async (code) => {
|
|
301
314
|
setCurrencyCode(code);
|
|
@@ -343,6 +356,7 @@ const AuthProviderInner = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
|
343
356
|
walletExpirationSeconds,
|
|
344
357
|
};
|
|
345
358
|
}, [
|
|
359
|
+
authenticatedApi,
|
|
346
360
|
authState,
|
|
347
361
|
backupCodeLogin,
|
|
348
362
|
changeLanguage,
|
|
@@ -383,21 +397,8 @@ const AuthProviderInner = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
|
383
397
|
]);
|
|
384
398
|
return ((0, jsx_runtime_1.jsx)(exports.AuthContext.Provider, { value: contextValue, children: children }));
|
|
385
399
|
};
|
|
386
|
-
const AuthProvider = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
387
|
-
|
|
388
|
-
const handleLanguageChange = async (newLanguage) => {
|
|
389
|
-
// Only make API call if there's an auth token (user is logged in)
|
|
390
|
-
const token = localStorage.getItem('authToken');
|
|
391
|
-
if (!token)
|
|
392
|
-
return;
|
|
393
|
-
try {
|
|
394
|
-
await authenticatedApi.post('/user/language', { language: newLanguage });
|
|
395
|
-
}
|
|
396
|
-
catch (error) {
|
|
397
|
-
console.error('Failed to update user language:', error);
|
|
398
|
-
}
|
|
399
|
-
};
|
|
400
|
-
return ((0, jsx_runtime_1.jsx)(I18nProvider_1.I18nProvider, { i18nEngine: i18n_lib_1.I18nEngine.getInstance(), onLanguageChange: handleLanguageChange, children: (0, jsx_runtime_1.jsx)(AuthProviderInner, { baseUrl: baseUrl, constants: constants, eciesConfig: eciesConfig, children: children }) }));
|
|
400
|
+
const AuthProvider = ({ children, baseUrl, constants, eciesConfig, onLogout }) => {
|
|
401
|
+
return ((0, jsx_runtime_1.jsx)(AuthProviderInner, { baseUrl: baseUrl, constants: constants, eciesConfig: eciesConfig, onLogout: onLogout, children: children }));
|
|
401
402
|
};
|
|
402
403
|
exports.AuthProvider = AuthProvider;
|
|
403
404
|
const useAuth = () => {
|