@digitaldefiance/express-suite-react-components 2.5.9 → 2.5.10
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
|
@@ -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;
|
|
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;CACH;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,uBAE7B,sBAAsB,KAAG,qBA4D3B,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"}
|
|
@@ -11,7 +11,6 @@ const defaultUserSettings = {
|
|
|
11
11
|
currency: new i18n_lib_1.CurrencyCode(i18n_lib_1.DefaultCurrencyCode),
|
|
12
12
|
timezone: new i18n_lib_1.Timezone(i18n_lib_1.DefaultTimezone),
|
|
13
13
|
siteLanguage: i18n_lib_1.DefaultLanguageCode,
|
|
14
|
-
email: new ecies_lib_1.EmailString('bob@example.com'),
|
|
15
14
|
directChallenge: false,
|
|
16
15
|
};
|
|
17
16
|
/**
|
|
@@ -25,20 +24,25 @@ const useUserSettings = ({ authenticatedApi, }) => {
|
|
|
25
24
|
const [userSettings, setUserSettings] = (0, react_1.useState)(undefined);
|
|
26
25
|
const setUserSettingAndUpdateSettings = (0, react_1.useCallback)(async (setting) => {
|
|
27
26
|
if (setting) {
|
|
28
|
-
|
|
27
|
+
// Merge settings with defaults and existing settings
|
|
28
|
+
const merged = {
|
|
29
29
|
...defaultUserSettings,
|
|
30
30
|
...(userSettings ? userSettings : {}),
|
|
31
31
|
...setting,
|
|
32
32
|
};
|
|
33
|
-
|
|
33
|
+
// TypeScript requires all IUserSettings fields, but during initialization
|
|
34
|
+
// some fields like email may not be set yet. We'll use Partial until
|
|
35
|
+
// all required fields are available.
|
|
36
|
+
setUserSettings(merged);
|
|
34
37
|
if (setting.darkMode !== undefined) {
|
|
35
38
|
themeSetPaletteMode(setting.darkMode ? 'dark' : 'light');
|
|
36
39
|
}
|
|
37
40
|
if (setting.siteLanguage !== undefined && setting.siteLanguage !== currentLanguage) {
|
|
38
41
|
changeLanguage(setting.siteLanguage);
|
|
39
42
|
}
|
|
40
|
-
|
|
41
|
-
if (isAuthenticated) {
|
|
43
|
+
// Only send to server if we have complete settings (including email)
|
|
44
|
+
if (merged.email && isAuthenticated) {
|
|
45
|
+
const dehydratedSettings = (0, suite_core_lib_1.dehydrateUserSettings)(merged);
|
|
42
46
|
await authenticatedApi.post('/user/settings', dehydratedSettings);
|
|
43
47
|
}
|
|
44
48
|
}
|