@digitaldefiance/express-suite-react-components 2.1.51 → 2.1.53
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 +8 -0
- package/package.json +1 -1
- package/src/contexts/AuthProvider.d.ts +6 -1
- package/src/contexts/AuthProvider.d.ts.map +1 -1
- package/src/contexts/AuthProvider.js +8 -7
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +1 -0
- package/src/wrappers/index.d.ts +15 -0
- package/src/wrappers/index.d.ts.map +1 -0
- package/src/wrappers/index.js +125 -0
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":"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;AAMf,OAAO,EAAE,eAAe,EAAE,eAAe,EAA4C,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEzI,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,eAAe,EAAE,CACf,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,OAAO,EACxB,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CACR;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACzE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CACrC,CAAC;IACF;;;OAGG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB;;;;;OAKG;IACH,cAAc,EAAE,CACd,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,KAChB,OAAO,CACR,eAAe,GACf;QACE,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC,CACJ,CAAC;IACF,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,CACX,QAAQ,EAAE,YAAY,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,WAAW,EACnB,qBAAqB,CAAC,EAAE,MAAM,EAC9B,mBAAmB,CAAC,EAAE,MAAM,KACzB,OAAO,CACR;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACxD;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CACxC,CAAC;IACF,mBAAmB,EAAE,CACnB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,WAAW,EACnB,qBAAqB,CAAC,EAAE,MAAM,EAC9B,mBAAmB,CAAC,EAAE,MAAM,KACzB,OAAO,CACR;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GACzE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CACxC,CAAC;IACF,eAAe,EAAE,OAAO,CAAC;IAEzB,cAAc,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,OAAO,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;IAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,eAAe,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7L,iBAAiB,EAAE,CACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,WAAW,KAChB,OAAO,CAAC,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,YAAY,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IACtE,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CACR;QACE,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,GACD;QACE,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/C,CACJ,CAAC;IACF,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD;;;OAGG;IACH,wBAAwB,EAAE,MAAM,MAAM,CAAC;IACvC;;;OAGG;IACH,sBAAsB,EAAE,MAAM,MAAM,CAAC;IACrC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,4BAA4B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,0BAA0B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvM,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClD;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,YAAY,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,WAAW,0CAEvB,CAAC;AAwfF,eAAO,MAAM,YAAY,GAAI,yDAAyD,iBAAiB,4CAoBtG,CAAC;AAEF,eAAO,MAAM,OAAO,uBAEnB,CAAC"}
|
|
@@ -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,7 +12,7 @@ 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]);
|
|
19
18
|
// Use the custom hooks for expiring values
|
|
@@ -32,7 +31,6 @@ const AuthProviderInner = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
|
32
31
|
const [isCheckingAuth, setIsCheckingAuth] = (0, react_1.useState)(true);
|
|
33
32
|
const [token, setToken] = (0, react_1.useState)(null);
|
|
34
33
|
const [authState, setAuthState] = (0, react_1.useState)(0);
|
|
35
|
-
const navigate = (0, react_router_dom_1.useNavigate)();
|
|
36
34
|
const [currencyCode, setCurrencyCode] = (0, react_1.useState)(() => {
|
|
37
35
|
return new i18n_lib_1.CurrencyCode(localStorage.getItem('currencyCode') ?? i18n_lib_1.DefaultCurrencyCode);
|
|
38
36
|
});
|
|
@@ -252,8 +250,11 @@ const AuthProviderInner = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
|
252
250
|
clearWallet();
|
|
253
251
|
setIsAuthenticated(false);
|
|
254
252
|
setAuthState((prev) => prev + 1);
|
|
255
|
-
|
|
256
|
-
|
|
253
|
+
// Call the optional navigation callback if provided
|
|
254
|
+
if (onLogout) {
|
|
255
|
+
onLogout();
|
|
256
|
+
}
|
|
257
|
+
}, [onLogout, clearMnemonic, clearWallet]);
|
|
257
258
|
const verifyToken = (0, react_1.useCallback)(async (token) => {
|
|
258
259
|
const requestUser = await authService.verifyToken(token);
|
|
259
260
|
if (typeof requestUser === 'object' && 'error' in requestUser) {
|
|
@@ -383,7 +384,7 @@ const AuthProviderInner = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
|
383
384
|
]);
|
|
384
385
|
return ((0, jsx_runtime_1.jsx)(exports.AuthContext.Provider, { value: contextValue, children: children }));
|
|
385
386
|
};
|
|
386
|
-
const AuthProvider = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
387
|
+
const AuthProvider = ({ children, baseUrl, constants, eciesConfig, onLogout }) => {
|
|
387
388
|
const authenticatedApi = (0, react_1.useMemo)(() => (0, authenticatedApi_1.createAuthenticatedApiClient)(baseUrl), [baseUrl]);
|
|
388
389
|
const handleLanguageChange = async (newLanguage) => {
|
|
389
390
|
// Only make API call if there's an auth token (user is logged in)
|
|
@@ -397,7 +398,7 @@ const AuthProvider = ({ children, baseUrl, constants, eciesConfig }) => {
|
|
|
397
398
|
console.error('Failed to update user language:', error);
|
|
398
399
|
}
|
|
399
400
|
};
|
|
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 }) }));
|
|
401
|
+
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, onLogout: onLogout, children: children }) }));
|
|
401
402
|
};
|
|
402
403
|
exports.AuthProvider = AuthProvider;
|
|
403
404
|
const useAuth = () => {
|
package/src/index.d.ts
CHANGED
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-express-suite-react-components/src/index.ts"],"names":[],"mappings":"AACA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-express-suite-react-components/src/index.ts"],"names":[],"mappings":"AACA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
|
package/src/index.js
CHANGED
|
@@ -10,3 +10,4 @@ tslib_1.__exportStar(require("./hooks"), exports);
|
|
|
10
10
|
tslib_1.__exportStar(require("./interfaces"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./services"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./types"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./wrappers"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
export declare const BackupCodeLoginWrapper: FC;
|
|
3
|
+
export interface BackupCodesWrapperProps {
|
|
4
|
+
baseUrl: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const BackupCodesWrapper: FC<BackupCodesWrapperProps>;
|
|
7
|
+
export declare const ChangePasswordFormWrapper: FC;
|
|
8
|
+
export declare const LoginFormWrapper: FC;
|
|
9
|
+
export declare const RegisterFormWrapper: FC;
|
|
10
|
+
export declare const LogoutPageWrapper: FC;
|
|
11
|
+
export interface VerifyEmailPageWrapperProps {
|
|
12
|
+
baseUrl: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const VerifyEmailPageWrapper: FC<VerifyEmailPageWrapperProps>;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/wrappers/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AAaxD,eAAO,MAAM,sBAAsB,EAAE,EAWpC,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAoC1D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,EAevC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,EA6B9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,EAyBjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,EAK/B,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CAelE,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VerifyEmailPageWrapper = exports.LogoutPageWrapper = exports.RegisterFormWrapper = exports.LoginFormWrapper = exports.ChangePasswordFormWrapper = exports.BackupCodesWrapper = exports.BackupCodeLoginWrapper = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_router_dom_1 = require("react-router-dom");
|
|
7
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
8
|
+
const BackupCodeLoginForm_1 = require("../components/BackupCodeLoginForm");
|
|
9
|
+
const BackupCodesForm_1 = require("../components/BackupCodesForm");
|
|
10
|
+
const ChangePasswordForm_1 = require("../components/ChangePasswordForm");
|
|
11
|
+
const LoginForm_1 = require("../components/LoginForm");
|
|
12
|
+
const RegisterForm_1 = require("../components/RegisterForm");
|
|
13
|
+
const LogoutPage_1 = require("../components/LogoutPage");
|
|
14
|
+
const VerifyEmailPage_1 = require("../components/VerifyEmailPage");
|
|
15
|
+
const contexts_1 = require("../contexts");
|
|
16
|
+
const services_1 = require("../services");
|
|
17
|
+
const BackupCodeLoginWrapper = () => {
|
|
18
|
+
const { backupCodeLogin, isAuthenticated } = (0, contexts_1.useAuth)();
|
|
19
|
+
const navigate = (0, react_router_dom_1.useNavigate)();
|
|
20
|
+
return ((0, jsx_runtime_1.jsx)(BackupCodeLoginForm_1.BackupCodeLoginForm, { onSubmit: backupCodeLogin, onNavigate: navigate, isAuthenticated: isAuthenticated }));
|
|
21
|
+
};
|
|
22
|
+
exports.BackupCodeLoginWrapper = BackupCodeLoginWrapper;
|
|
23
|
+
const BackupCodesWrapper = ({ baseUrl }) => {
|
|
24
|
+
const [backupCodesRemaining, setBackupCodesRemaining] = (0, react_1.useState)((0, react_router_dom_1.useLocation)().state?.codeCount ?? null);
|
|
25
|
+
const requestedOnMountRef = (0, react_1.useRef)(false);
|
|
26
|
+
const api = (0, services_1.createAuthenticatedApiClient)(baseUrl);
|
|
27
|
+
(0, react_1.useEffect)(() => {
|
|
28
|
+
if (requestedOnMountRef.current)
|
|
29
|
+
return;
|
|
30
|
+
if (backupCodesRemaining !== null)
|
|
31
|
+
return;
|
|
32
|
+
requestedOnMountRef.current = true;
|
|
33
|
+
api.get('/user/backup-codes')
|
|
34
|
+
.then((result) => {
|
|
35
|
+
if (result?.data?.codeCount) {
|
|
36
|
+
setBackupCodesRemaining(result.data.codeCount);
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
.catch(() => {
|
|
40
|
+
setBackupCodesRemaining(0);
|
|
41
|
+
});
|
|
42
|
+
}, [backupCodesRemaining, api]);
|
|
43
|
+
const handleSubmit = async (values) => {
|
|
44
|
+
const result = await api.post('/user/backup-codes', {
|
|
45
|
+
...(values.password ? { password: values.password } : {}),
|
|
46
|
+
...(values.mnemonic ? { mnemonic: values.mnemonic } : {}),
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
message: result.data.message,
|
|
50
|
+
backupCodes: result.data.backupCodes,
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
return (0, jsx_runtime_1.jsx)(BackupCodesForm_1.BackupCodesForm, { onSubmit: handleSubmit, backupCodesRemaining: backupCodesRemaining });
|
|
54
|
+
};
|
|
55
|
+
exports.BackupCodesWrapper = BackupCodesWrapper;
|
|
56
|
+
const ChangePasswordFormWrapper = () => {
|
|
57
|
+
const { changePassword } = (0, contexts_1.useAuth)();
|
|
58
|
+
const handleSubmit = async (values) => {
|
|
59
|
+
const result = await changePassword(values.currentPassword, values.newPassword);
|
|
60
|
+
if ('error' in result) {
|
|
61
|
+
throw new Error(result.error);
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
};
|
|
65
|
+
return (0, jsx_runtime_1.jsx)(ChangePasswordForm_1.ChangePasswordForm, { onSubmit: handleSubmit });
|
|
66
|
+
};
|
|
67
|
+
exports.ChangePasswordFormWrapper = ChangePasswordFormWrapper;
|
|
68
|
+
const LoginFormWrapper = () => {
|
|
69
|
+
const { directLogin, passwordLogin } = (0, contexts_1.useAuth)();
|
|
70
|
+
const navigate = (0, react_router_dom_1.useNavigate)();
|
|
71
|
+
const handleSubmit = async (values) => {
|
|
72
|
+
if (values.password) {
|
|
73
|
+
const result = await passwordLogin(new ecies_lib_1.SecureString(values.password), values.username, values.email ? new ecies_lib_1.EmailString(values.email) : undefined);
|
|
74
|
+
if ('error' in result) {
|
|
75
|
+
throw new Error(result.error);
|
|
76
|
+
}
|
|
77
|
+
navigate('/dashboard');
|
|
78
|
+
}
|
|
79
|
+
else if (values.mnemonic) {
|
|
80
|
+
const result = await directLogin(new ecies_lib_1.SecureString(values.mnemonic), values.username, values.email ? new ecies_lib_1.EmailString(values.email) : undefined);
|
|
81
|
+
if ('error' in result) {
|
|
82
|
+
throw new Error(result.error);
|
|
83
|
+
}
|
|
84
|
+
navigate('/dashboard');
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
return (0, jsx_runtime_1.jsx)(LoginForm_1.LoginForm, { onSubmit: handleSubmit });
|
|
88
|
+
};
|
|
89
|
+
exports.LoginFormWrapper = LoginFormWrapper;
|
|
90
|
+
const RegisterFormWrapper = () => {
|
|
91
|
+
const { register } = (0, contexts_1.useAuth)();
|
|
92
|
+
const navigate = (0, react_router_dom_1.useNavigate)();
|
|
93
|
+
const handleSubmit = async (values, usePassword) => {
|
|
94
|
+
const result = await register(values.username, values.email, values.timezone || 'UTC', values.password);
|
|
95
|
+
if ('error' in result) {
|
|
96
|
+
throw new Error(result.error);
|
|
97
|
+
}
|
|
98
|
+
navigate('/verify-email');
|
|
99
|
+
return result;
|
|
100
|
+
};
|
|
101
|
+
return ((0, jsx_runtime_1.jsx)(RegisterForm_1.RegisterForm, { onSubmit: handleSubmit, timezones: ['UTC', 'America/New_York', 'America/Los_Angeles', 'Europe/London'], getInitialTimezone: () => Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC' }));
|
|
102
|
+
};
|
|
103
|
+
exports.RegisterFormWrapper = RegisterFormWrapper;
|
|
104
|
+
const LogoutPageWrapper = () => {
|
|
105
|
+
const { logout } = (0, contexts_1.useAuth)();
|
|
106
|
+
const navigate = (0, react_router_dom_1.useNavigate)();
|
|
107
|
+
return (0, jsx_runtime_1.jsx)(LogoutPage_1.LogoutPage, { onLogout: logout, onNavigate: navigate });
|
|
108
|
+
};
|
|
109
|
+
exports.LogoutPageWrapper = LogoutPageWrapper;
|
|
110
|
+
const VerifyEmailPageWrapper = ({ baseUrl }) => {
|
|
111
|
+
const api = (0, services_1.createAuthenticatedApiClient)(baseUrl);
|
|
112
|
+
const searchParams = new URLSearchParams(window.location.search);
|
|
113
|
+
const token = searchParams.get('token');
|
|
114
|
+
const handleVerify = async (verificationToken) => {
|
|
115
|
+
try {
|
|
116
|
+
const result = await api.post('/verify-email', { token: verificationToken });
|
|
117
|
+
return { success: true, message: result.data.message };
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
return { success: false, message: error.response?.data?.message };
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
return (0, jsx_runtime_1.jsx)(VerifyEmailPage_1.VerifyEmailPage, { token: token, onVerify: handleVerify });
|
|
124
|
+
};
|
|
125
|
+
exports.VerifyEmailPageWrapper = VerifyEmailPageWrapper;
|