@digitaldefiance/express-suite-react-components 2.9.9 → 2.9.12

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.
Files changed (55) hide show
  1. package/package.json +3 -3
  2. package/src/components/ApiAccess.d.ts.map +1 -1
  3. package/src/components/ApiAccess.js +16 -9
  4. package/src/components/BackupCodeLoginForm.d.ts +2 -2
  5. package/src/components/BackupCodeLoginForm.d.ts.map +1 -1
  6. package/src/components/BackupCodeLoginForm.js +62 -29
  7. package/src/components/BackupCodesForm.d.ts.map +1 -1
  8. package/src/components/BackupCodesForm.js +29 -17
  9. package/src/components/ChangePasswordForm.d.ts.map +1 -1
  10. package/src/components/ChangePasswordForm.js +29 -17
  11. package/src/components/ExpirationSecondsSelector.d.ts +3 -3
  12. package/src/components/ExpirationSecondsSelector.d.ts.map +1 -1
  13. package/src/components/ExpirationSecondsSelector.js +1 -1
  14. package/src/components/Flag.d.ts.map +1 -1
  15. package/src/components/ForgotPasswordForm.d.ts.map +1 -1
  16. package/src/components/ForgotPasswordForm.js +16 -9
  17. package/src/components/LoginForm.d.ts +2 -2
  18. package/src/components/LoginForm.d.ts.map +1 -1
  19. package/src/components/LoginForm.js +52 -29
  20. package/src/components/RegisterForm.d.ts +5 -3
  21. package/src/components/RegisterForm.d.ts.map +1 -1
  22. package/src/components/RegisterForm.js +62 -27
  23. package/src/components/ResetPasswordForm.d.ts.map +1 -1
  24. package/src/components/ResetPasswordForm.js +25 -15
  25. package/src/components/TopMenu.d.ts.map +1 -1
  26. package/src/components/TopMenu.js +2 -3
  27. package/src/components/TranslatedTitle.d.ts +1 -1
  28. package/src/components/TranslatedTitle.d.ts.map +1 -1
  29. package/src/components/TranslatedTitle.js +1 -1
  30. package/src/components/UserSettingsForm.d.ts +4 -3
  31. package/src/components/UserSettingsForm.d.ts.map +1 -1
  32. package/src/components/UserSettingsForm.js +58 -25
  33. package/src/components/VerifyEmailPage.d.ts.map +1 -1
  34. package/src/components/VerifyEmailPage.js +20 -11
  35. package/src/contexts/AuthProvider.d.ts +4 -4
  36. package/src/contexts/AuthProvider.d.ts.map +1 -1
  37. package/src/contexts/AuthProvider.js +82 -27
  38. package/src/contexts/I18nProvider.d.ts.map +1 -1
  39. package/src/contexts/MenuContext.d.ts +2 -2
  40. package/src/contexts/MenuContext.d.ts.map +1 -1
  41. package/src/contexts/MenuContext.js +72 -43
  42. package/src/hooks/useBackupCodes.d.ts.map +1 -1
  43. package/src/hooks/useBackupCodes.js +8 -4
  44. package/src/hooks/useEmailVerification.d.ts.map +1 -1
  45. package/src/hooks/useEmailVerification.js +8 -4
  46. package/src/hooks/useUserSettings.d.ts +4 -2
  47. package/src/hooks/useUserSettings.d.ts.map +1 -1
  48. package/src/hooks/useUserSettings.js +30 -13
  49. package/src/services/authService.d.ts.map +1 -1
  50. package/src/services/authService.js +58 -70
  51. package/src/wrappers/BackupCodeLoginWrapper.d.ts.map +1 -1
  52. package/src/wrappers/BackupCodeLoginWrapper.js +0 -1
  53. package/src/wrappers/ChangePasswordFormWrapper.d.ts.map +1 -1
  54. package/src/wrappers/RegisterFormWrapper.d.ts.map +1 -1
  55. package/src/wrappers/RegisterFormWrapper.js +7 -2
@@ -4,26 +4,28 @@ exports.useMenu = exports.MenuProvider = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  // src/app/menuContext.tsx
6
6
  const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
7
- const suite_core_lib_2 = require("@digitaldefiance/suite-core-lib");
8
7
  const icons_material_1 = require("@mui/icons-material");
9
8
  const react_1 = require("react");
10
- const AuthProvider_1 = require("./AuthProvider");
11
- const ThemeProvider_1 = require("./ThemeProvider");
9
+ const hooks_1 = require("../hooks");
10
+ const services_1 = require("../services");
12
11
  const MenuType_1 = require("../types/MenuType");
12
+ const AuthProvider_1 = require("./AuthProvider");
13
13
  const I18nProvider_1 = require("./I18nProvider");
14
- const hooks_1 = require("../hooks");
15
14
  const SuiteConfigProvider_1 = require("./SuiteConfigProvider");
16
- const services_1 = require("../services");
15
+ const ThemeProvider_1 = require("./ThemeProvider");
17
16
  const MenuContext = (0, react_1.createContext)(undefined);
18
- const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true }) => {
19
- const { userData: user, isAuthenticated, mnemonic, clearMnemonic, wallet, clearWallet } = (0, AuthProvider_1.useAuth)();
17
+ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true, }) => {
18
+ const { userData: user, isAuthenticated, mnemonic, clearMnemonic, wallet, clearWallet, } = (0, AuthProvider_1.useAuth)();
20
19
  const { mode: colorMode } = (0, ThemeProvider_1.useTheme)();
21
20
  const registeredMenuOptions = (0, react_1.useRef)(new Set());
22
21
  const [registeredOptions, setRegisteredOptions] = (0, react_1.useState)(new Map());
23
22
  const { tComponent } = (0, I18nProvider_1.useI18n)();
24
23
  const { baseUrl } = (0, SuiteConfigProvider_1.useSuiteConfig)();
25
24
  const authenticatedApi = (0, react_1.useMemo)(() => (0, services_1.createAuthenticatedApiClient)(baseUrl), [baseUrl]);
26
- const { toggleColorMode } = (0, hooks_1.useUserSettings)({ authenticatedApi, isAuthenticated });
25
+ const { toggleColorMode } = (0, hooks_1.useUserSettings)({
26
+ authenticatedApi,
27
+ isAuthenticated,
28
+ });
27
29
  const registerMenuOption = (0, react_1.useCallback)((option) => {
28
30
  const unregister = () => {
29
31
  setRegisteredOptions((prev) => {
@@ -53,7 +55,7 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
53
55
  const baseOptions = [
54
56
  {
55
57
  id: 'dashboard',
56
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.Common_Dashboard),
58
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.Common_Dashboard),
57
59
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.Dashboard, {}),
58
60
  link: '/dashboard',
59
61
  requiresAuth: true,
@@ -70,7 +72,7 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
70
72
  },
71
73
  {
72
74
  id: 'logout',
73
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.LogoutButton),
75
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.LogoutButton),
74
76
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.ExitToApp, {}),
75
77
  link: '/logout',
76
78
  requiresAuth: true,
@@ -79,7 +81,7 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
79
81
  },
80
82
  {
81
83
  id: 'login',
82
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.Login_LoginButton),
84
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.Login_LoginButton),
83
85
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.Login, {}),
84
86
  link: '/login',
85
87
  requiresAuth: false,
@@ -88,7 +90,7 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
88
90
  },
89
91
  {
90
92
  id: 'register',
91
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.RegisterButton),
93
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.RegisterButton),
92
94
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.PersonAdd, {}),
93
95
  link: '/register',
94
96
  requiresAuth: false,
@@ -97,7 +99,7 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
97
99
  },
98
100
  {
99
101
  id: 'forgot-password',
100
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.ForgotPassword_Title),
102
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.ForgotPassword_Title),
101
103
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.LockOpen, {}),
102
104
  link: '/forgot-password',
103
105
  requiresAuth: false,
@@ -106,31 +108,35 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
106
108
  },
107
109
  {
108
110
  id: 'change-password',
109
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.Common_ChangePassword),
111
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.Common_ChangePassword),
110
112
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.LockReset, {}),
111
113
  link: '/change-password',
112
114
  requiresAuth: true,
113
115
  includeOnMenus: [MenuType_1.MenuTypes.UserMenu, MenuType_1.MenuTypes.SideMenu],
114
116
  index: index++,
115
117
  },
116
- ...(enableBackupCodes ? [{
117
- id: 'backup-code',
118
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.BackupCodeRecovery_Title),
119
- icon: (0, jsx_runtime_1.jsx)(icons_material_1.Key, {}),
120
- link: '/backup-code',
121
- requiresAuth: false,
122
- includeOnMenus: [MenuType_1.MenuTypes.UserMenu, MenuType_1.MenuTypes.SideMenu],
123
- index: index++,
124
- },
125
- {
126
- id: 'backup-codes',
127
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.BackupCodeRecovery_GenerateNewCodes),
128
- icon: (0, jsx_runtime_1.jsx)(icons_material_1.Autorenew, {}),
129
- link: '/backup-codes',
130
- requiresAuth: true,
131
- includeOnMenus: [MenuType_1.MenuTypes.UserMenu, MenuType_1.MenuTypes.SideMenu],
132
- index: index++,
133
- }] : []),
118
+ ...(enableBackupCodes
119
+ ? [
120
+ {
121
+ id: 'backup-code',
122
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.BackupCodeRecovery_Title),
123
+ icon: (0, jsx_runtime_1.jsx)(icons_material_1.Key, {}),
124
+ link: '/backup-code',
125
+ requiresAuth: false,
126
+ includeOnMenus: [MenuType_1.MenuTypes.UserMenu, MenuType_1.MenuTypes.SideMenu],
127
+ index: index++,
128
+ },
129
+ {
130
+ id: 'backup-codes',
131
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.BackupCodeRecovery_GenerateNewCodes),
132
+ icon: (0, jsx_runtime_1.jsx)(icons_material_1.Autorenew, {}),
133
+ link: '/backup-codes',
134
+ requiresAuth: true,
135
+ includeOnMenus: [MenuType_1.MenuTypes.UserMenu, MenuType_1.MenuTypes.SideMenu],
136
+ index: index++,
137
+ },
138
+ ]
139
+ : []),
134
140
  {
135
141
  id: 'divider',
136
142
  label: '',
@@ -141,7 +147,7 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
141
147
  },
142
148
  {
143
149
  id: 'clear-mnemonic',
144
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.Common_ClearMnemonic),
150
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.Common_ClearMnemonic),
145
151
  action: clearMnemonic,
146
152
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.Key, {}),
147
153
  requiresAuth: true,
@@ -151,7 +157,7 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
151
157
  },
152
158
  {
153
159
  id: 'clear-wallet',
154
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.Common_ClearWallet),
160
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.Common_ClearWallet),
155
161
  action: clearWallet,
156
162
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.Key, {}),
157
163
  requiresAuth: true,
@@ -171,8 +177,8 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
171
177
  {
172
178
  id: 'theme-toggle',
173
179
  label: colorMode === 'dark'
174
- ? tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.Common_ThemeToggle_Light)
175
- : tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.Common_ThemeToggle_Dark),
180
+ ? tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.Common_ThemeToggle_Light)
181
+ : tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.Common_ThemeToggle_Dark),
176
182
  icon: colorMode === 'dark' ? (0, jsx_runtime_1.jsx)(icons_material_1.Brightness7, {}) : (0, jsx_runtime_1.jsx)(icons_material_1.Brightness4, {}),
177
183
  includeOnMenus: [MenuType_1.MenuTypes.SideMenu],
178
184
  index: index++,
@@ -181,17 +187,28 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
181
187
  },
182
188
  {
183
189
  id: 'user-settings',
184
- label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_2.SuiteCoreStringKey.Settings_Title),
190
+ label: tComponent(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.Settings_Title),
185
191
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.Settings, {}),
186
192
  link: '/user-settings',
187
193
  requiresAuth: true,
188
194
  includeOnMenus: [MenuType_1.MenuTypes.UserMenu, MenuType_1.MenuTypes.SideMenu],
189
195
  index: index++,
190
- }
196
+ },
191
197
  ];
192
198
  const allOptions = [...baseOptions, ...registeredOptions.values()];
193
199
  return allOptions.sort((a, b) => a.index - b.index);
194
- }, [tComponent, registeredOptions, user?.roles, colorMode, toggleColorMode, clearMnemonic, clearWallet, mnemonic, wallet]);
200
+ }, [
201
+ tComponent,
202
+ registeredOptions,
203
+ user?.roles,
204
+ colorMode,
205
+ toggleColorMode,
206
+ clearMnemonic,
207
+ clearWallet,
208
+ mnemonic,
209
+ wallet,
210
+ enableBackupCodes,
211
+ ]);
195
212
  const getMenuOptions = (0, react_1.useCallback)((menuType, includeDividers) => {
196
213
  const MenuFilter = (o) => {
197
214
  // Apply the custom filter first
@@ -210,14 +227,20 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
210
227
  }, [isAuthenticated, menuOptions]);
211
228
  (0, react_1.useEffect)(() => {
212
229
  if (menuConfigs.length > 0) {
213
- return registerMenuOptions(menuConfigs.flatMap(config => config.options));
230
+ return registerMenuOptions(menuConfigs.flatMap((config) => config.options));
214
231
  }
215
232
  return undefined;
216
233
  }, [menuConfigs, registerMenuOptions]);
217
234
  const getTopMenus = (0, react_1.useCallback)(() => {
218
235
  const menus = [
219
- ...menuConfigs.map(config => ({ ...config, isUserMenu: false })),
220
- { menuType: MenuType_1.MenuTypes.UserMenu, menuIcon: (0, jsx_runtime_1.jsx)(icons_material_1.AccountCircle, {}), priority: 0, options: [], isUserMenu: true }
236
+ ...menuConfigs.map((config) => ({ ...config, isUserMenu: false })),
237
+ {
238
+ menuType: MenuType_1.MenuTypes.UserMenu,
239
+ menuIcon: (0, jsx_runtime_1.jsx)(icons_material_1.AccountCircle, {}),
240
+ priority: 0,
241
+ options: [],
242
+ isUserMenu: true,
243
+ },
221
244
  ];
222
245
  return menus.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
223
246
  }, [menuConfigs]);
@@ -229,7 +252,13 @@ const MenuProvider = ({ children, menuConfigs = [], enableBackupCodes = true })
229
252
  registerMenuOptions: registerMenuOptions,
230
253
  getTopMenus: getTopMenus,
231
254
  };
232
- }, [menuOptions, getMenuOptions, registerMenuOption, registerMenuOptions, getTopMenus]);
255
+ }, [
256
+ menuOptions,
257
+ getMenuOptions,
258
+ registerMenuOption,
259
+ registerMenuOptions,
260
+ getTopMenus,
261
+ ]);
233
262
  const memoizedChildren = (0, react_1.useMemo)(() => children, [children]);
234
263
  return ((0, jsx_runtime_1.jsx)(MenuContext.Provider, { value: contextValue, children: memoizedChildren }));
235
264
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useBackupCodes.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/hooks/useBackupCodes.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,mBAAmB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QACrE,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,cAAc,GACzB,UAAS,qBAA0B,KAClC,oBA8DF,CAAC"}
1
+ {"version":3,"file":"useBackupCodes.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/hooks/useBackupCodes.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,mBAAmB,EAAE,CACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,cAAc,GACzB,UAAS,qBAA0B,KAClC,oBA4EF,CAAC"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useBackupCodes = void 0;
4
+ const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
4
5
  const react_1 = require("react");
5
- const services_1 = require("../services");
6
6
  const contexts_1 = require("../contexts");
7
- const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
7
+ const services_1 = require("../services");
8
8
  const useBackupCodes = (options = {}) => {
9
9
  const { baseUrl } = (0, contexts_1.useSuiteConfig)();
10
10
  const [backupCodesRemaining, setBackupCodesRemaining] = (0, react_1.useState)(options.initialCodeCount ?? null);
@@ -22,7 +22,9 @@ const useBackupCodes = (options = {}) => {
22
22
  }
23
23
  }
24
24
  catch (err) {
25
- setError(err instanceof Error ? err : new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.BackupCodes_FailedToFetch));
25
+ setError(err instanceof Error
26
+ ? err
27
+ : new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.BackupCodes_FailedToFetch));
26
28
  setBackupCodesRemaining(0);
27
29
  }
28
30
  finally {
@@ -51,7 +53,9 @@ const useBackupCodes = (options = {}) => {
51
53
  };
52
54
  }
53
55
  catch (err) {
54
- const error = err instanceof Error ? err : new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.BackupCodes_FailedToGenerate);
56
+ const error = err instanceof Error
57
+ ? err
58
+ : new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.BackupCodes_FailedToGenerate);
55
59
  setError(error);
56
60
  throw error;
57
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useEmailVerification.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/hooks/useEmailVerification.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjF;AAED,eAAO,MAAM,oBAAoB,QAAO,0BA2BvC,CAAC"}
1
+ {"version":3,"file":"useEmailVerification.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/hooks/useEmailVerification.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,CACX,KAAK,EAAE,MAAM,KACV,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,eAAO,MAAM,oBAAoB,QAAO,0BAgCvC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useEmailVerification = void 0;
4
+ const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
4
5
  const react_1 = require("react");
5
- const services_1 = require("../services");
6
6
  const contexts_1 = require("../contexts");
7
- const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
7
+ const services_1 = require("../services");
8
8
  const useEmailVerification = () => {
9
9
  const { baseUrl } = (0, contexts_1.useSuiteConfig)();
10
10
  const api = (0, react_1.useMemo)(() => (0, services_1.createAuthenticatedApiClient)(baseUrl), [baseUrl]);
@@ -14,11 +14,15 @@ const useEmailVerification = () => {
14
14
  setIsVerifying(true);
15
15
  setError(null);
16
16
  try {
17
- const result = await api.post('/verify-email', { token: verificationToken });
17
+ const result = await api.post('/verify-email', {
18
+ token: verificationToken,
19
+ });
18
20
  return { success: true, message: result.data.message };
19
21
  }
20
22
  catch (err) {
21
- const errorMessage = err.response?.data?.message || (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Error_VerificationFailed);
23
+ const axiosError = err;
24
+ const errorMessage = axiosError.response?.data?.message ||
25
+ (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Error_VerificationFailed);
22
26
  const error = new Error(errorMessage);
23
27
  setError(error);
24
28
  return { success: false, message: errorMessage };
@@ -1,7 +1,9 @@
1
1
  import { IUserSettings, IUserSettingsDTO } from '@digitaldefiance/suite-core-lib';
2
2
  export interface UseUserSettingsOptions {
3
3
  authenticatedApi: {
4
- post: (url: string, data: any) => Promise<any>;
4
+ post: <T = unknown>(url: string, data: Record<string, unknown>) => Promise<{
5
+ data: T;
6
+ }>;
5
7
  };
6
8
  isAuthenticated: boolean;
7
9
  }
@@ -18,7 +20,7 @@ export interface UseUserSettingsResult {
18
20
  */
19
21
  export declare const useUserSettings: ({ authenticatedApi, isAuthenticated, }: UseUserSettingsOptions) => UseUserSettingsResult;
20
22
  export interface UserSettingsValues extends IUserSettingsDTO {
21
- [key: string]: any;
23
+ [key: string]: string | boolean;
22
24
  }
23
25
  export interface UseUserSettingsPublicResult {
24
26
  settings: UserSettingsValues | null;
@@ -1 +1 @@
1
- {"version":3,"file":"useUserSettings.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/hooks/useUserSettings.ts"],"names":[],"mappings":"AASA,OAAO,EACL,aAAa,EAGb,gBAAgB,EAIjB,MAAM,iCAAiC,CAAC;AAWzC,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KAChD,CAAC;IACF,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,YAAY,EAAE,aAAa,GAAG,SAAS,CAAC;IACxC,+BAA+B,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,wCAG7B,sBAAsB,KAAG,qBA+D3B,CAAC;AAGF,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC;QACtD,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG;QACF,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,CAAC,CAAC;IACH,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,2BA2ExC,CAAC"}
1
+ {"version":3,"file":"useUserSettings.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/hooks/useUserSettings.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,aAAa,EACb,gBAAgB,EAGjB,MAAM,iCAAiC,CAAC;AAYzC,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC;YAAE,IAAI,EAAE,CAAC,CAAA;SAAE,CAAC,CAAC;KAC3B,CAAC;IACF,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,YAAY,EAAE,aAAa,GAAG,SAAS,CAAC;IACxC,+BAA+B,EAAE,CAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,KAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,wCAG7B,sBAAsB,KAAG,qBAsF3B,CAAC;AAGF,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CACnD;QACE,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,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,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,2BAkGxC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useUserSettingsPublic = exports.useUserSettings = void 0;
4
- const react_1 = require("react");
5
- const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
6
4
  const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
5
+ const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
7
6
  const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
7
+ const react_1 = require("react");
8
8
  const contexts_1 = require("../contexts");
9
9
  const defaultUserSettings = {
10
10
  darkMode: false,
@@ -36,7 +36,8 @@ const useUserSettings = ({ authenticatedApi, isAuthenticated, }) => {
36
36
  if (setting.darkMode !== undefined) {
37
37
  themeSetPaletteMode(setting.darkMode ? 'dark' : 'light');
38
38
  }
39
- if (setting.siteLanguage !== undefined && setting.siteLanguage !== currentLanguage) {
39
+ if (setting.siteLanguage !== undefined &&
40
+ setting.siteLanguage !== currentLanguage) {
40
41
  changeLanguage(setting.siteLanguage);
41
42
  }
42
43
  // Send to server if authenticated and we have complete settings (including email)
@@ -49,7 +50,14 @@ const useUserSettings = ({ authenticatedApi, isAuthenticated, }) => {
49
50
  setUserSettings(undefined);
50
51
  themeSetPaletteMode('light');
51
52
  }
52
- }, [isAuthenticated, userSettings, currentLanguage, changeLanguage, themeSetPaletteMode, authenticatedApi]);
53
+ }, [
54
+ isAuthenticated,
55
+ userSettings,
56
+ currentLanguage,
57
+ changeLanguage,
58
+ themeSetPaletteMode,
59
+ authenticatedApi,
60
+ ]);
53
61
  const changeLanguageSetting = (0, react_1.useCallback)(async (languageCode) => {
54
62
  await setUserSettingAndUpdateSettings({ siteLanguage: languageCode });
55
63
  }, [setUserSettingAndUpdateSettings]);
@@ -57,10 +65,15 @@ const useUserSettings = ({ authenticatedApi, isAuthenticated, }) => {
57
65
  // When not authenticated, read from the current theme mode
58
66
  // When authenticated, read from userSettings (synced with server)
59
67
  const currentDarkMode = isAuthenticated
60
- ? (userSettings?.darkMode ?? false)
61
- : (currentThemeMode === 'dark');
68
+ ? userSettings?.darkMode ?? false
69
+ : currentThemeMode === 'dark';
62
70
  await setUserSettingAndUpdateSettings({ darkMode: !currentDarkMode });
63
- }, [isAuthenticated, userSettings?.darkMode, currentThemeMode, setUserSettingAndUpdateSettings]);
71
+ }, [
72
+ isAuthenticated,
73
+ userSettings?.darkMode,
74
+ currentThemeMode,
75
+ setUserSettingAndUpdateSettings,
76
+ ]);
64
77
  return {
65
78
  changeLanguage: changeLanguageSetting,
66
79
  currentLanguage,
@@ -100,7 +113,9 @@ const useUserSettingsPublic = () => {
100
113
  }
101
114
  }
102
115
  catch (err) {
103
- setError(err instanceof Error ? err : new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Settings_RetrieveFailure));
116
+ setError(err instanceof Error
117
+ ? err
118
+ : new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Settings_RetrieveFailure));
104
119
  }
105
120
  finally {
106
121
  setIsLoading(false);
@@ -124,17 +139,19 @@ const useUserSettingsPublic = () => {
124
139
  setSettings(values);
125
140
  return {
126
141
  success: true,
127
- message: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Settings_SaveSuccess)
142
+ message: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Settings_SaveSuccess),
128
143
  };
129
144
  }
130
145
  catch (err) {
131
- const errorMessage = err.response?.data?.message || (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Settings_UpdateFailed);
146
+ const axiosError = err;
147
+ const errorMessage = axiosError.response?.data?.message ||
148
+ (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Settings_UpdateFailed);
132
149
  setError(err instanceof Error ? err : new Error(errorMessage));
133
150
  return {
134
151
  error: errorMessage,
135
- errorType: err.response?.data?.errorType,
136
- field: err.response?.data?.field,
137
- errors: err.response?.data?.errors,
152
+ errorType: axiosError.response?.data?.errorType,
153
+ field: axiosError.response?.data?.field,
154
+ errors: axiosError.response?.data?.errors,
138
155
  };
139
156
  }
140
157
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/services/authService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/services/authService.ts"],"names":[],"mappings":"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"}