@solidxai/core-ui 0.1.9-beta.18 → 0.1.9-beta.19
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/adapters/auth/handleLogout.d.ts +1 -1
- package/dist/adapters/auth/handleLogout.d.ts.map +1 -1
- package/dist/adapters/auth/handleLogout.js +20 -32
- package/dist/adapters/auth/handleLogout.js.map +1 -1
- package/dist/adapters/auth/handleLogout.ts +7 -14
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +1 -10
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +1 -8
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +6 -11
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +5 -31
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +47 -13
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +38 -4
- package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts +16 -0
- package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js +31 -0
- package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx +43 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts +3 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js +141 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx +205 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts +4 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js +112 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx +146 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts +11 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js +22 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.tsx +36 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts +3 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js +133 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.ts +76 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +12 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +168 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +241 -0
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -0
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +74 -68
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +13 -4
- package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.js +0 -2
- package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.tsx +0 -1
- package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js +10 -9
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +3 -1
- package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderButton.js +3 -0
- package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderButton.tsx +2 -0
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +3 -0
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +2 -0
- package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionsMenu.js +7 -1
- package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +5 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.js +4 -6
- package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -3
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +3 -2
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +3 -2
- package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -2
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -2
- package/dist/components/core/model/CreateModel.css +48 -0
- package/dist/components/core/model/CreateModel.d.ts +1 -0
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +69 -104
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +92 -204
- package/dist/components/core/model/FieldMetaData.d.ts +1 -1
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +6 -22
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +6 -45
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +196 -222
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +0 -72
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +7 -7
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +7 -0
- package/dist/components/core/module/CreateModule.css +44 -0
- package/dist/components/core/module/CreateModule.d.ts +1 -0
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +40 -43
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +243 -247
- package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
- package/dist/components/core/module/ModuleListViewData.js +47 -7
- package/dist/components/core/module/ModuleListViewData.js.map +1 -1
- package/dist/components/core/module/ModuleListViewData.tsx +58 -0
- package/dist/components/core/module/ModuleMetadataExplorer.css +638 -0
- package/dist/components/core/module/ModuleMetadataExplorer.d.ts +15 -0
- package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -0
- package/dist/components/core/module/ModuleMetadataExplorer.js +666 -0
- package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -0
- package/dist/components/core/module/ModuleMetadataExplorer.tsx +1000 -0
- package/dist/components/core/module/ModulePackageDialog.css +540 -0
- package/dist/components/core/module/ModulePackageDialog.d.ts +16 -0
- package/dist/components/core/module/ModulePackageDialog.d.ts.map +1 -0
- package/dist/components/core/module/ModulePackageDialog.js +625 -0
- package/dist/components/core/module/ModulePackageDialog.js.map +1 -0
- package/dist/components/core/module/ModulePackageDialog.tsx +906 -0
- package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
- package/dist/components/layout/user-profile-menu.js +57 -33
- package/dist/components/layout/user-profile-menu.js.map +1 -1
- package/dist/components/layout/user-profile-menu.tsx +11 -59
- package/dist/helpers/buttonEnvironment.d.ts +5 -0
- package/dist/helpers/buttonEnvironment.d.ts.map +1 -0
- package/dist/helpers/buttonEnvironment.js +30 -0
- package/dist/helpers/buttonEnvironment.js.map +1 -0
- package/dist/helpers/buttonEnvironment.ts +35 -0
- package/dist/helpers/fileTypeIcon.d.ts +12 -0
- package/dist/helpers/fileTypeIcon.d.ts.map +1 -0
- package/dist/helpers/fileTypeIcon.js +37 -0
- package/dist/helpers/fileTypeIcon.js.map +1 -0
- package/dist/helpers/fileTypeIcon.tsx +65 -0
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +10 -0
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +10 -0
- package/dist/helpers/waitForBackendAvailability.d.ts +7 -0
- package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -0
- package/dist/helpers/waitForBackendAvailability.js +86 -0
- package/dist/helpers/waitForBackendAvailability.js.map +1 -0
- package/dist/helpers/waitForBackendAvailability.ts +37 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/index.ts +18 -0
- package/dist/redux/api/moduleApi.d.ts +26 -1
- package/dist/redux/api/moduleApi.d.ts.map +1 -1
- package/dist/redux/api/moduleApi.js +237 -1
- package/dist/redux/api/moduleApi.js.map +1 -1
- package/dist/redux/api/moduleApi.ts +181 -1
- package/dist/redux/store/defaultStoreConfig.d.ts +22 -0
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/solidEntityApiPool.d.ts +1 -0
- package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
- package/dist/redux/store/solidEntityApiPool.js +4 -0
- package/dist/redux/store/solidEntityApiPool.js.map +1 -1
- package/dist/redux/store/solidEntityApiPool.ts +4 -0
- package/dist/resources/globals.css +56 -0
- package/dist/resources/shadcn-base.css +5 -0
- package/dist/routes/AppEventListener.d.ts.map +1 -1
- package/dist/routes/AppEventListener.js +58 -8
- package/dist/routes/AppEventListener.js.map +1 -1
- package/dist/routes/AppEventListener.tsx +69 -8
- package/dist/types/index.d.ts +1 -0
- package/dist/types/jsoneditor.d.ts +4 -0
- package/package.json +2 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function handleLogout(
|
|
1
|
+
export declare function handleLogout(): Promise<boolean>;
|
|
2
2
|
//# sourceMappingURL=handleLogout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleLogout.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/handleLogout.ts"],"names":[],"mappings":"AAIA,wBAAsB,YAAY,
|
|
1
|
+
{"version":3,"file":"handleLogout.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/handleLogout.ts"],"names":[],"mappings":"AAIA,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CA2BrD"}
|
|
@@ -37,52 +37,40 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
import { ERROR_MESSAGES } from "../../constants/error-messages";
|
|
38
38
|
import { getSession, signOut } from "./index";
|
|
39
39
|
import { solidPost } from "../../http/solidHttp";
|
|
40
|
-
export function handleLogout(
|
|
41
|
-
var _b, _c, _d, _e, _f, _g
|
|
42
|
-
var toast = _a.toast;
|
|
40
|
+
export function handleLogout() {
|
|
41
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
43
42
|
return __awaiter(this, void 0, void 0, function () {
|
|
44
43
|
var session, refreshToken, response, error_1, err, message;
|
|
45
|
-
return __generator(this, function (
|
|
46
|
-
switch (
|
|
44
|
+
return __generator(this, function (_h) {
|
|
45
|
+
switch (_h.label) {
|
|
47
46
|
case 0: return [4 /*yield*/, getSession()];
|
|
48
47
|
case 1:
|
|
49
|
-
session =
|
|
50
|
-
refreshToken = (
|
|
51
|
-
|
|
48
|
+
session = _h.sent();
|
|
49
|
+
refreshToken = (_a = session === null || session === void 0 ? void 0 : session.user) === null || _a === void 0 ? void 0 : _a.refreshToken;
|
|
50
|
+
_h.label = 2;
|
|
52
51
|
case 2:
|
|
53
|
-
|
|
52
|
+
_h.trys.push([2, 6, , 7]);
|
|
54
53
|
return [4 /*yield*/, solidPost("/iam/logout", {
|
|
55
54
|
refreshToken: refreshToken, // Pass refresh token in body
|
|
56
55
|
})];
|
|
57
56
|
case 3:
|
|
58
|
-
response =
|
|
57
|
+
response = _h.sent();
|
|
59
58
|
console.log("logout response", response);
|
|
60
|
-
if (!(((
|
|
59
|
+
if (!(((_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.statusCode) === 200)) return [3 /*break*/, 5];
|
|
61
60
|
return [4 /*yield*/, signOut({ callbackUrl: '/auth/login' })];
|
|
62
61
|
case 4:
|
|
63
|
-
|
|
64
|
-
return [
|
|
62
|
+
_h.sent();
|
|
63
|
+
return [2 /*return*/, true];
|
|
65
64
|
case 5:
|
|
66
|
-
(_d =
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
life: 3000,
|
|
71
|
-
});
|
|
72
|
-
_l.label = 6;
|
|
73
|
-
case 6: return [3 /*break*/, 8];
|
|
74
|
-
case 7:
|
|
75
|
-
error_1 = _l.sent();
|
|
65
|
+
console.error(ERROR_MESSAGES.LOGOUT_FAILED, "".concat((_d = (_c = response === null || response === void 0 ? void 0 : response.data) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.status));
|
|
66
|
+
return [2 /*return*/, false];
|
|
67
|
+
case 6:
|
|
68
|
+
error_1 = _h.sent();
|
|
76
69
|
err = error_1;
|
|
77
|
-
message = ((
|
|
78
|
-
(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
detail: message,
|
|
82
|
-
life: 3000,
|
|
83
|
-
});
|
|
84
|
-
return [3 /*break*/, 8];
|
|
85
|
-
case 8: return [2 /*return*/];
|
|
70
|
+
message = ((_g = (_f = (_e = err.response) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.data) === null || _g === void 0 ? void 0 : _g.message) || err.message || ERROR_MESSAGES.LOGOUT_FAILED;
|
|
71
|
+
console.error(ERROR_MESSAGES.LOGOUT_FAILED, message);
|
|
72
|
+
return [2 /*return*/, false];
|
|
73
|
+
case 7: return [2 /*return*/];
|
|
86
74
|
}
|
|
87
75
|
});
|
|
88
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleLogout.js","sourceRoot":"","sources":["../../../src/adapters/auth/handleLogout.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,UAAgB,YAAY,
|
|
1
|
+
{"version":3,"file":"handleLogout.js","sourceRoot":"","sources":["../../../src/adapters/auth/handleLogout.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,UAAgB,YAAY;;;;;;wBACd,qBAAM,UAAU,EAAE,EAAA;;oBAA5B,OAAO,GAAG,SAAkB;oBAC5B,YAAY,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,YAAY,CAAC;;;;oBAE5B,qBAAM,SAAS,CAC5B,aAAa,EACb;4BACI,YAAY,EAAE,YAAY,EAAE,6BAA6B;yBAC5D,CACJ,EAAA;;oBALK,QAAQ,GAAG,SAKhB;oBACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;yBAErC,CAAA,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,UAAU,MAAK,GAAG,CAAA,EAAlC,wBAAkC;oBAClC,qBAAM,OAAO,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,EAAA;;oBAA7C,SAA6C,CAAC;oBAC9C,sBAAO,IAAI,EAAC;;oBAGhB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,UAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,IAAI,0CAAE,MAAM,CAAE,CAAC,CAAC;oBAC/E,sBAAO,KAAK,EAAC;;;oBAEP,GAAG,GAAG,OAAY,CAAC;oBACnB,OAAO,GACT,CAAA,MAAA,MAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,IAAI,0CAAE,IAAI,0CAAE,OAAO,KAAI,GAAG,CAAC,OAAO,IAAI,cAAc,CAAC,aAAa,CAAC;oBAErF,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;oBACrD,sBAAO,KAAK,EAAC;;;;;CAEpB","sourcesContent":["import { ERROR_MESSAGES } from \"../../constants/error-messages\";\nimport { getSession, signOut } from \"./index\";\nimport { solidPost } from \"../../http/solidHttp\";\n\nexport async function handleLogout(): Promise<boolean> {\n const session = await getSession();\n const refreshToken = session?.user?.refreshToken;\n try {\n const response = await solidPost(\n \"/iam/logout\",\n {\n refreshToken: refreshToken, // Pass refresh token in body\n }\n );\n console.log(\"logout response\", response);\n\n if (response?.data?.statusCode === 200) {\n await signOut({ callbackUrl: '/auth/login' });\n return true;\n }\n\n console.error(ERROR_MESSAGES.LOGOUT_FAILED, `${response?.data?.data?.status}`);\n return false;\n } catch (error) {\n const err = error as any;\n const message =\n err.response?.data?.data?.message || err.message || ERROR_MESSAGES.LOGOUT_FAILED;\n\n console.error(ERROR_MESSAGES.LOGOUT_FAILED, message);\n return false;\n }\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { ERROR_MESSAGES } from "../../constants/error-messages";
|
|
|
2
2
|
import { getSession, signOut } from "./index";
|
|
3
3
|
import { solidPost } from "../../http/solidHttp";
|
|
4
4
|
|
|
5
|
-
export async function handleLogout(
|
|
5
|
+
export async function handleLogout(): Promise<boolean> {
|
|
6
6
|
const session = await getSession();
|
|
7
7
|
const refreshToken = session?.user?.refreshToken;
|
|
8
8
|
try {
|
|
@@ -16,24 +16,17 @@ export async function handleLogout({ toast }: any) {
|
|
|
16
16
|
|
|
17
17
|
if (response?.data?.statusCode === 200) {
|
|
18
18
|
await signOut({ callbackUrl: '/auth/login' });
|
|
19
|
-
|
|
20
|
-
toast?.current?.show({
|
|
21
|
-
severity: 'error',
|
|
22
|
-
summary: ERROR_MESSAGES.LOGOUT_FAILED,
|
|
23
|
-
detail: `${response?.data?.data?.status}`,
|
|
24
|
-
life: 3000,
|
|
25
|
-
});
|
|
19
|
+
return true;
|
|
26
20
|
}
|
|
21
|
+
|
|
22
|
+
console.error(ERROR_MESSAGES.LOGOUT_FAILED, `${response?.data?.data?.status}`);
|
|
23
|
+
return false;
|
|
27
24
|
} catch (error) {
|
|
28
25
|
const err = error as any;
|
|
29
26
|
const message =
|
|
30
27
|
err.response?.data?.data?.message || err.message || ERROR_MESSAGES.LOGOUT_FAILED;
|
|
31
28
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
summary: ERROR_MESSAGES.LOGOUT_FAILED,
|
|
35
|
-
detail: message,
|
|
36
|
-
life: 3000,
|
|
37
|
-
});
|
|
29
|
+
console.error(ERROR_MESSAGES.LOGOUT_FAILED, message);
|
|
30
|
+
return false;
|
|
38
31
|
}
|
|
39
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidChangePassword.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx"],"names":[],"mappings":"AAqFA,eAAO,MAAM,mBAAmB,0BAA2B,GAAG,
|
|
1
|
+
{"version":3,"file":"SolidChangePassword.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx"],"names":[],"mappings":"AAqFA,eAAO,MAAM,mBAAmB,0BAA2B,GAAG,4CA2J7D,CAAC"}
|
|
@@ -151,16 +151,7 @@ export var SolidChangePassword = function (_a) {
|
|
|
151
151
|
}
|
|
152
152
|
notify("success", ERROR_MESSAGES.PASSWORD_CHANGE, ERROR_MESSAGES.PASSWORD_CHANGE);
|
|
153
153
|
resetForm();
|
|
154
|
-
handleLogout(
|
|
155
|
-
toast: {
|
|
156
|
-
current: {
|
|
157
|
-
show: function (_a) {
|
|
158
|
-
var severity = _a.severity, summary = _a.summary, detail = _a.detail, sticky = _a.sticky, life = _a.life;
|
|
159
|
-
return notify(severity || "info", summary || "", detail || "", { sticky: sticky, life: life });
|
|
160
|
-
},
|
|
161
|
-
},
|
|
162
|
-
},
|
|
163
|
-
});
|
|
154
|
+
handleLogout();
|
|
164
155
|
return [3 /*break*/, 3];
|
|
165
156
|
case 2:
|
|
166
157
|
err_1 = _h.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidChangePassword.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ChangeEventHandler, FocusEventHandler, useMemo, useState } from \"react\";\nimport { useFormik } from \"formik\";\nimport * as Yup from \"yup\";\nimport { handleLogout } from \"../../../../adapters/auth/handleLogout\";\nimport { env } from \"../../../../adapters/env\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { useSession } from \"../../../../hooks/useSession\";\nimport { useChangePasswordMutation } from \"../../../../redux/api/authApi\";\nimport { SolidPasswordHelperText } from \"../SolidPasswordHelperText\";\nimport { SolidButton } from \"../../../shad-cn-ui/SolidButton\";\nimport styles from \"./SolidAccountSettings.module.css\";\n\ntype ToastState = {\n id: number;\n severity: \"success\" | \"error\" | \"info\" | \"warn\";\n summary: string;\n detail: string;\n sticky?: boolean;\n life?: number;\n} | null;\n\nconst ToastMessage = ({ toast, onClose }: { toast: ToastState; onClose: () => void }) => {\n if (!toast) return null;\n const severityClass =\n toast.severity === \"error\"\n ? styles.toastError\n : toast.severity === \"success\"\n ? styles.toastSuccess\n : toast.severity === \"warn\"\n ? styles.toastWarn\n : styles.toastInfo;\n\n return (\n <div className={`${styles.toast} ${severityClass}`} role=\"status\" aria-live=\"polite\">\n <div>\n <div className={styles.toastTitle}>{toast.summary}</div>\n <div className={styles.toastBody}>{toast.detail}</div>\n </div>\n <button type=\"button\" className={styles.toastClose} onClick={onClose} aria-label=\"Close notification\">\n ×\n </button>\n </div>\n );\n};\n\nconst PasswordInput = ({\n id,\n name,\n value,\n onChange,\n onBlur,\n placeholder,\n}: {\n id: string;\n name: string;\n value: string;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onBlur: FocusEventHandler<HTMLInputElement>;\n placeholder?: string;\n}) => {\n const [visible, setVisible] = useState(false);\n return (\n <div className={styles.passwordWrap}>\n <input\n id={id}\n name={name}\n type={visible ? \"text\" : \"password\"}\n className={styles.input}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n />\n <button\n type=\"button\"\n className={styles.passwordToggle}\n onClick={() => setVisible((prev) => !prev)}\n aria-label={visible ? \"Hide password\" : \"Show password\"}\n >\n {visible ? \"Hide\" : \"Show\"}\n </button>\n </div>\n );\n};\n\nexport const SolidChangePassword = ({ solidSettingsData }: any) => {\n const [toast, setToast] = useState<ToastState>(null);\n const [changePassword] = useChangePasswordMutation();\n const session: any = useSession();\n\n const notify = (\n severity: \"success\" | \"error\" | \"info\" | \"warn\",\n summary: string,\n detail: string,\n opts?: { sticky?: boolean; life?: number }\n ) => {\n setToast({\n id: Date.now(),\n severity,\n summary,\n detail,\n sticky: opts?.sticky,\n life: opts?.life ?? 3000,\n });\n };\n\n const envPasswordRegex = env(\"NEXT_PUBLIC_PASSWORD_REGEX\");\n\n const effectiveRegex = useMemo(() => {\n try {\n const backendRegex = solidSettingsData?.data?.authenticationPasswordRegex;\n if (backendRegex) return new RegExp(backendRegex);\n if (envPasswordRegex) {\n const unescaped = JSON.parse(`\"${envPasswordRegex}\"`);\n return new RegExp(unescaped);\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.INVALID_PASSWORD_REGX, error);\n }\n return null;\n }, [solidSettingsData, envPasswordRegex]);\n\n const validationSchema = useMemo(() => {\n const newPasswordValidation = effectiveRegex\n ? Yup.string()\n .matches(\n effectiveRegex,\n solidSettingsData?.data?.authenticationPasswordRegexErrorMessage || ERROR_MESSAGES.PASSWORD_DO_NOT_MEET\n )\n .required(ERROR_MESSAGES.FIELD_REUQIRED(\"New password\"))\n : Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).required(ERROR_MESSAGES.FIELD_REUQIRED(\"New password\"));\n\n return Yup.object({\n email: Yup.string().email(ERROR_MESSAGES.FIELD_INAVLID_FORMAT(\"email\")).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Email\")),\n currentPassword: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Current password\")),\n newPassword: newPasswordValidation,\n confirmPassword: Yup.string().oneOf([Yup.ref(\"newPassword\")], ERROR_MESSAGES.MUST_MATCH).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Confirm password\")),\n id: Yup.number().required(ERROR_MESSAGES.FIELD_INAVLID_FORMAT(\"User ID\")),\n });\n }, [effectiveRegex, solidSettingsData]);\n\n const formik = useFormik({\n initialValues: {\n email: session?.data?.user?.email,\n currentPassword: \"\",\n newPassword: \"\",\n confirmPassword: \"\",\n id: session?.data?.user?.id,\n },\n validationSchema,\n onSubmit: async (values, { setErrors, resetForm }) => {\n try {\n const payload = {\n id: values.id,\n email: session?.data?.user?.email,\n currentPassword: values.currentPassword,\n newPassword: values.newPassword,\n };\n\n const response = await changePassword(payload).unwrap();\n if (response?.error) {\n notify(\"error\", ERROR_MESSAGES.ERROR, response.error);\n setErrors({\n currentPassword: ERROR_MESSAGES.INCORRECT_CURRENT,\n newPassword: ERROR_MESSAGES.MUST_MATCH,\n confirmPassword: ERROR_MESSAGES.MUST_MATCH,\n });\n return;\n }\n\n notify(\"success\", ERROR_MESSAGES.PASSWORD_CHANGE, ERROR_MESSAGES.PASSWORD_CHANGE);\n resetForm();\n handleLogout({\n toast: {\n current: {\n show: ({ severity, summary, detail, sticky, life }: any) =>\n notify(severity || \"info\", summary || \"\", detail || \"\", { sticky, life }),\n },\n },\n });\n } catch (err: any) {\n notify(\"error\", err?.data?.message || ERROR_MESSAGES.ERROR, err?.data?.data?.message || err?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG);\n }\n },\n });\n\n const fieldError = (field: string) => {\n if (!formik.touched[field as keyof typeof formik.touched]) return null;\n const error = formik.errors[field as keyof typeof formik.errors];\n return typeof error === \"string\" ? error : null;\n };\n\n return (\n <form onSubmit={formik.handleSubmit} className={styles.accountForm}>\n <ToastMessage toast={toast} onClose={() => setToast(null)} />\n\n <div className={styles.accountScroll}>\n <div className={styles.formStack}>\n <div className={styles.field}>\n <label htmlFor=\"currentPassword\">Current Password</label>\n <PasswordInput\n id=\"currentPassword\"\n name=\"currentPassword\"\n value={formik.values.currentPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"currentPassword\") ? <p className={styles.errorText}>{fieldError(\"currentPassword\")}</p> : null}\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"newPassword\">New Password</label>\n <PasswordInput\n id=\"newPassword\"\n name=\"newPassword\"\n value={formik.values.newPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"newPassword\") ? <p className={styles.errorText}>{fieldError(\"newPassword\")}</p> : null}\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"confirmPassword\">Confirm New Password</label>\n <PasswordInput\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"confirmPassword\") ? <p className={styles.errorText}>{fieldError(\"confirmPassword\")}</p> : null}\n </div>\n </div>\n\n <div className={styles.passwordHintWrap}>\n <SolidPasswordHelperText text={solidSettingsData?.data?.authenticationPasswordComplexityDescription} />\n </div>\n </div>\n\n <div className={styles.footerActions}>\n <SolidButton type=\"submit\" size=\"sm\" loading={formik.isSubmitting}>\n Change Password\n </SolidButton>\n </div>\n </form>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SolidChangePassword.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ChangeEventHandler, FocusEventHandler, useMemo, useState } from \"react\";\nimport { useFormik } from \"formik\";\nimport * as Yup from \"yup\";\nimport { handleLogout } from \"../../../../adapters/auth/handleLogout\";\nimport { env } from \"../../../../adapters/env\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { useSession } from \"../../../../hooks/useSession\";\nimport { useChangePasswordMutation } from \"../../../../redux/api/authApi\";\nimport { SolidPasswordHelperText } from \"../SolidPasswordHelperText\";\nimport { SolidButton } from \"../../../shad-cn-ui/SolidButton\";\nimport styles from \"./SolidAccountSettings.module.css\";\n\ntype ToastState = {\n id: number;\n severity: \"success\" | \"error\" | \"info\" | \"warn\";\n summary: string;\n detail: string;\n sticky?: boolean;\n life?: number;\n} | null;\n\nconst ToastMessage = ({ toast, onClose }: { toast: ToastState; onClose: () => void }) => {\n if (!toast) return null;\n const severityClass =\n toast.severity === \"error\"\n ? styles.toastError\n : toast.severity === \"success\"\n ? styles.toastSuccess\n : toast.severity === \"warn\"\n ? styles.toastWarn\n : styles.toastInfo;\n\n return (\n <div className={`${styles.toast} ${severityClass}`} role=\"status\" aria-live=\"polite\">\n <div>\n <div className={styles.toastTitle}>{toast.summary}</div>\n <div className={styles.toastBody}>{toast.detail}</div>\n </div>\n <button type=\"button\" className={styles.toastClose} onClick={onClose} aria-label=\"Close notification\">\n ×\n </button>\n </div>\n );\n};\n\nconst PasswordInput = ({\n id,\n name,\n value,\n onChange,\n onBlur,\n placeholder,\n}: {\n id: string;\n name: string;\n value: string;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onBlur: FocusEventHandler<HTMLInputElement>;\n placeholder?: string;\n}) => {\n const [visible, setVisible] = useState(false);\n return (\n <div className={styles.passwordWrap}>\n <input\n id={id}\n name={name}\n type={visible ? \"text\" : \"password\"}\n className={styles.input}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n />\n <button\n type=\"button\"\n className={styles.passwordToggle}\n onClick={() => setVisible((prev) => !prev)}\n aria-label={visible ? \"Hide password\" : \"Show password\"}\n >\n {visible ? \"Hide\" : \"Show\"}\n </button>\n </div>\n );\n};\n\nexport const SolidChangePassword = ({ solidSettingsData }: any) => {\n const [toast, setToast] = useState<ToastState>(null);\n const [changePassword] = useChangePasswordMutation();\n const session: any = useSession();\n\n const notify = (\n severity: \"success\" | \"error\" | \"info\" | \"warn\",\n summary: string,\n detail: string,\n opts?: { sticky?: boolean; life?: number }\n ) => {\n setToast({\n id: Date.now(),\n severity,\n summary,\n detail,\n sticky: opts?.sticky,\n life: opts?.life ?? 3000,\n });\n };\n\n const envPasswordRegex = env(\"NEXT_PUBLIC_PASSWORD_REGEX\");\n\n const effectiveRegex = useMemo(() => {\n try {\n const backendRegex = solidSettingsData?.data?.authenticationPasswordRegex;\n if (backendRegex) return new RegExp(backendRegex);\n if (envPasswordRegex) {\n const unescaped = JSON.parse(`\"${envPasswordRegex}\"`);\n return new RegExp(unescaped);\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.INVALID_PASSWORD_REGX, error);\n }\n return null;\n }, [solidSettingsData, envPasswordRegex]);\n\n const validationSchema = useMemo(() => {\n const newPasswordValidation = effectiveRegex\n ? Yup.string()\n .matches(\n effectiveRegex,\n solidSettingsData?.data?.authenticationPasswordRegexErrorMessage || ERROR_MESSAGES.PASSWORD_DO_NOT_MEET\n )\n .required(ERROR_MESSAGES.FIELD_REUQIRED(\"New password\"))\n : Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).required(ERROR_MESSAGES.FIELD_REUQIRED(\"New password\"));\n\n return Yup.object({\n email: Yup.string().email(ERROR_MESSAGES.FIELD_INAVLID_FORMAT(\"email\")).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Email\")),\n currentPassword: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Current password\")),\n newPassword: newPasswordValidation,\n confirmPassword: Yup.string().oneOf([Yup.ref(\"newPassword\")], ERROR_MESSAGES.MUST_MATCH).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Confirm password\")),\n id: Yup.number().required(ERROR_MESSAGES.FIELD_INAVLID_FORMAT(\"User ID\")),\n });\n }, [effectiveRegex, solidSettingsData]);\n\n const formik = useFormik({\n initialValues: {\n email: session?.data?.user?.email,\n currentPassword: \"\",\n newPassword: \"\",\n confirmPassword: \"\",\n id: session?.data?.user?.id,\n },\n validationSchema,\n onSubmit: async (values, { setErrors, resetForm }) => {\n try {\n const payload = {\n id: values.id,\n email: session?.data?.user?.email,\n currentPassword: values.currentPassword,\n newPassword: values.newPassword,\n };\n\n const response = await changePassword(payload).unwrap();\n if (response?.error) {\n notify(\"error\", ERROR_MESSAGES.ERROR, response.error);\n setErrors({\n currentPassword: ERROR_MESSAGES.INCORRECT_CURRENT,\n newPassword: ERROR_MESSAGES.MUST_MATCH,\n confirmPassword: ERROR_MESSAGES.MUST_MATCH,\n });\n return;\n }\n\n notify(\"success\", ERROR_MESSAGES.PASSWORD_CHANGE, ERROR_MESSAGES.PASSWORD_CHANGE);\n resetForm();\n handleLogout();\n } catch (err: any) {\n notify(\"error\", err?.data?.message || ERROR_MESSAGES.ERROR, err?.data?.data?.message || err?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG);\n }\n },\n });\n\n const fieldError = (field: string) => {\n if (!formik.touched[field as keyof typeof formik.touched]) return null;\n const error = formik.errors[field as keyof typeof formik.errors];\n return typeof error === \"string\" ? error : null;\n };\n\n return (\n <form onSubmit={formik.handleSubmit} className={styles.accountForm}>\n <ToastMessage toast={toast} onClose={() => setToast(null)} />\n\n <div className={styles.accountScroll}>\n <div className={styles.formStack}>\n <div className={styles.field}>\n <label htmlFor=\"currentPassword\">Current Password</label>\n <PasswordInput\n id=\"currentPassword\"\n name=\"currentPassword\"\n value={formik.values.currentPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"currentPassword\") ? <p className={styles.errorText}>{fieldError(\"currentPassword\")}</p> : null}\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"newPassword\">New Password</label>\n <PasswordInput\n id=\"newPassword\"\n name=\"newPassword\"\n value={formik.values.newPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"newPassword\") ? <p className={styles.errorText}>{fieldError(\"newPassword\")}</p> : null}\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"confirmPassword\">Confirm New Password</label>\n <PasswordInput\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"confirmPassword\") ? <p className={styles.errorText}>{fieldError(\"confirmPassword\")}</p> : null}\n </div>\n </div>\n\n <div className={styles.passwordHintWrap}>\n <SolidPasswordHelperText text={solidSettingsData?.data?.authenticationPasswordComplexityDescription} />\n </div>\n </div>\n\n <div className={styles.footerActions}>\n <SolidButton type=\"submit\" size=\"sm\" loading={formik.isSubmitting}>\n Change Password\n </SolidButton>\n </div>\n </form>\n );\n};\n"]}
|
|
@@ -170,14 +170,7 @@ export const SolidChangePassword = ({ solidSettingsData }: any) => {
|
|
|
170
170
|
|
|
171
171
|
notify("success", ERROR_MESSAGES.PASSWORD_CHANGE, ERROR_MESSAGES.PASSWORD_CHANGE);
|
|
172
172
|
resetForm();
|
|
173
|
-
handleLogout(
|
|
174
|
-
toast: {
|
|
175
|
-
current: {
|
|
176
|
-
show: ({ severity, summary, detail, sticky, life }: any) =>
|
|
177
|
-
notify(severity || "info", summary || "", detail || "", { sticky, life }),
|
|
178
|
-
},
|
|
179
|
-
},
|
|
180
|
-
});
|
|
173
|
+
handleLogout();
|
|
181
174
|
} catch (err: any) {
|
|
182
175
|
notify("error", err?.data?.message || ERROR_MESSAGES.ERROR, err?.data?.data?.message || err?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG);
|
|
183
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidNotifications.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidNotifications.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SolidNotifications.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidNotifications.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,kBAAkB,+CA2E9B,CAAC"}
|
|
@@ -35,24 +35,26 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
38
|
-
import { useEffect
|
|
38
|
+
import { useEffect } from "react";
|
|
39
|
+
import { useDispatch } from "react-redux";
|
|
39
40
|
import { useFormik } from "formik";
|
|
40
41
|
import { ERROR_MESSAGES } from "../../../../constants/error-messages";
|
|
41
42
|
import { useBulkUpdateSolidUserSettingsMutation, useGetSolidSettingsQuery } from "../../../../redux/api/solidSettingsApi";
|
|
43
|
+
import { showToast } from "../../../../redux/features/toastSlice";
|
|
42
44
|
import { SolidButton } from "../../../shad-cn-ui/SolidButton";
|
|
43
45
|
import styles from "./SolidAccountSettings.module.css";
|
|
44
46
|
import { getSettingsMap } from "../../../../helpers/settingsPayload";
|
|
45
47
|
export var SolidNotifications = function () {
|
|
46
48
|
var _a, _b;
|
|
49
|
+
var dispatch = useDispatch();
|
|
47
50
|
var _c = useGetSolidSettingsQuery(undefined), solidSettingsData = _c.data, refetch = _c.refetch;
|
|
48
51
|
var settingsMap = getSettingsMap(solidSettingsData);
|
|
49
52
|
var bulkUpdateSolidSettings = useBulkUpdateSolidUserSettingsMutation()[0];
|
|
50
|
-
var _d = useState(null), toast = _d[0], setToast = _d[1];
|
|
51
53
|
useEffect(function () {
|
|
52
54
|
refetch();
|
|
53
55
|
}, [refetch]);
|
|
54
56
|
var notify = function (severity, summary, detail) {
|
|
55
|
-
|
|
57
|
+
dispatch(showToast({ severity: severity, summary: summary, detail: detail }));
|
|
56
58
|
};
|
|
57
59
|
var formik = useFormik({
|
|
58
60
|
initialValues: {
|
|
@@ -99,13 +101,6 @@ export var SolidNotifications = function () {
|
|
|
99
101
|
});
|
|
100
102
|
}); },
|
|
101
103
|
});
|
|
102
|
-
|
|
103
|
-
? styles.toastError
|
|
104
|
-
: (toast === null || toast === void 0 ? void 0 : toast.severity) === "success"
|
|
105
|
-
? styles.toastSuccess
|
|
106
|
-
: (toast === null || toast === void 0 ? void 0 : toast.severity) === "warn"
|
|
107
|
-
? styles.toastWarn
|
|
108
|
-
: styles.toastInfo;
|
|
109
|
-
return (_jsxs("form", { onSubmit: formik.handleSubmit, className: styles.accountForm, children: [toast ? (_jsxs("div", { className: "".concat(styles.toast, " ").concat(severityClass), role: "status", "aria-live": "polite", children: [_jsxs("div", { children: [_jsx("div", { className: styles.toastTitle, children: toast.summary }), _jsx("div", { className: styles.toastBody, children: toast.detail })] }), _jsx("button", { type: "button", className: styles.toastClose, onClick: function () { return setToast(null); }, "aria-label": "Close notification", children: "\u00D7" })] })) : null, _jsx("div", { className: styles.accountScroll, children: _jsxs("div", { className: styles.switchRow, children: [_jsxs("div", { children: [_jsx("label", { className: styles.sectionTitle, children: "Enable Notification" }), _jsx("div", { className: styles.versionCaption, children: "Decide whether you want to be notified of new messages or updates." })] }), _jsxs("label", { className: styles.switch, "aria-label": "Enable notification", children: [_jsx("input", { type: "checkbox", checked: Boolean(formik.values.enableNotification), onChange: function (event) { return formik.setFieldValue("enableNotification", event.target.checked); } }), _jsx("span", { className: styles.switchTrack })] })] }) }), _jsx("div", { className: styles.footerActions, children: _jsx(SolidButton, { type: "submit", size: "sm", loading: formik.isSubmitting, children: "Save" }) })] }));
|
|
104
|
+
return (_jsxs("form", { onSubmit: formik.handleSubmit, className: styles.accountForm, children: [_jsx("div", { className: styles.accountScroll, children: _jsxs("div", { className: styles.switchRow, children: [_jsxs("div", { children: [_jsx("label", { className: styles.sectionTitle, children: "Enable Notification" }), _jsx("div", { className: styles.versionCaption, children: "Decide whether you want to be notified of new messages or updates." })] }), _jsxs("label", { className: styles.switch, "aria-label": "Enable notification", children: [_jsx("input", { type: "checkbox", checked: Boolean(formik.values.enableNotification), onChange: function (event) { return formik.setFieldValue("enableNotification", event.target.checked); } }), _jsx("span", { className: styles.switchTrack })] })] }) }), _jsx("div", { className: styles.footerActions, children: _jsx(SolidButton, { type: "submit", size: "sm", loading: formik.isSubmitting, children: "Save" }) })] }));
|
|
110
105
|
};
|
|
111
106
|
//# sourceMappingURL=SolidNotifications.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidNotifications.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidNotifications.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"SolidNotifications.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidNotifications.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { useFormik } from \"formik\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { useBulkUpdateSolidUserSettingsMutation, useGetSolidSettingsQuery } from \"../../../../redux/api/solidSettingsApi\";\nimport { showToast } from \"../../../../redux/features/toastSlice\";\nimport { SolidButton } from \"../../../shad-cn-ui/SolidButton\";\nimport styles from \"./SolidAccountSettings.module.css\";\nimport { getSettingsMap } from \"../../../../helpers/settingsPayload\";\n\nexport const SolidNotifications = () => {\n const dispatch = useDispatch();\n const { data: solidSettingsData, refetch } = useGetSolidSettingsQuery(undefined);\n const settingsMap = getSettingsMap(solidSettingsData);\n const [bulkUpdateSolidSettings] = useBulkUpdateSolidUserSettingsMutation();\n\n useEffect(() => {\n refetch();\n }, [refetch]);\n\n const notify = (severity: \"success\" | \"error\" | \"info\" | \"warn\", summary: string, detail: string) => {\n dispatch(showToast({ severity, summary, detail }));\n };\n\n const formik = useFormik({\n initialValues: {\n enableNotification: settingsMap?.enableNotification ?? settingsMap?.enabledNotification ?? true,\n },\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n const updatedSettingsArray: Array<{ key: string; value: string | boolean; type: string }> = [];\n const currentSettings = settingsMap || {};\n Object.entries(values).forEach(([key, value]) => {\n if ((currentSettings[key] ?? \"\") !== (value ?? \"\")) {\n updatedSettingsArray.push({ key, value, type: \"user\" });\n }\n });\n\n if (!updatedSettingsArray.length) {\n notify(\"info\", ERROR_MESSAGES.NO_CHANGE, ERROR_MESSAGES.NO_SETTING_UPDATE);\n return;\n }\n\n const formData = new FormData();\n formData.append(\"settings\", JSON.stringify(updatedSettingsArray));\n const response = await bulkUpdateSolidSettings({ data: formData }).unwrap();\n\n if (response.statusCode === 200) {\n notify(\"success\", ERROR_MESSAGES.UPDATED, ERROR_MESSAGES.SETTING_UPDATED);\n } else {\n notify(\"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.SOMETHING_WRONG);\n }\n } catch {\n notify(\"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.SOMETHING_WRONG);\n }\n },\n });\n\n return (\n <form onSubmit={formik.handleSubmit} className={styles.accountForm}>\n <div className={styles.accountScroll}>\n <div className={styles.switchRow}>\n <div>\n <label className={styles.sectionTitle}>Enable Notification</label>\n <div className={styles.versionCaption}>Decide whether you want to be notified of new messages or updates.</div>\n </div>\n <label className={styles.switch} aria-label=\"Enable notification\">\n <input\n type=\"checkbox\"\n checked={Boolean(formik.values.enableNotification)}\n onChange={(event) => formik.setFieldValue(\"enableNotification\", event.target.checked)}\n />\n <span className={styles.switchTrack} />\n </label>\n </div>\n </div>\n\n <div className={styles.footerActions}>\n <SolidButton type=\"submit\" size=\"sm\" loading={formik.isSubmitting}>\n Save\n </SolidButton>\n </div>\n </form>\n );\n};\n"]}
|
|
@@ -1,30 +1,25 @@
|
|
|
1
|
-
import { useEffect
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { useDispatch } from "react-redux";
|
|
2
3
|
import { useFormik } from "formik";
|
|
3
4
|
import { ERROR_MESSAGES } from "../../../../constants/error-messages";
|
|
4
5
|
import { useBulkUpdateSolidUserSettingsMutation, useGetSolidSettingsQuery } from "../../../../redux/api/solidSettingsApi";
|
|
6
|
+
import { showToast } from "../../../../redux/features/toastSlice";
|
|
5
7
|
import { SolidButton } from "../../../shad-cn-ui/SolidButton";
|
|
6
8
|
import styles from "./SolidAccountSettings.module.css";
|
|
7
9
|
import { getSettingsMap } from "../../../../helpers/settingsPayload";
|
|
8
10
|
|
|
9
|
-
type ToastState = {
|
|
10
|
-
id: number;
|
|
11
|
-
severity: "success" | "error" | "info" | "warn";
|
|
12
|
-
summary: string;
|
|
13
|
-
detail: string;
|
|
14
|
-
} | null;
|
|
15
|
-
|
|
16
11
|
export const SolidNotifications = () => {
|
|
12
|
+
const dispatch = useDispatch();
|
|
17
13
|
const { data: solidSettingsData, refetch } = useGetSolidSettingsQuery(undefined);
|
|
18
14
|
const settingsMap = getSettingsMap(solidSettingsData);
|
|
19
15
|
const [bulkUpdateSolidSettings] = useBulkUpdateSolidUserSettingsMutation();
|
|
20
|
-
const [toast, setToast] = useState<ToastState>(null);
|
|
21
16
|
|
|
22
17
|
useEffect(() => {
|
|
23
18
|
refetch();
|
|
24
19
|
}, [refetch]);
|
|
25
20
|
|
|
26
21
|
const notify = (severity: "success" | "error" | "info" | "warn", summary: string, detail: string) => {
|
|
27
|
-
|
|
22
|
+
dispatch(showToast({ severity, summary, detail }));
|
|
28
23
|
};
|
|
29
24
|
|
|
30
25
|
const formik = useFormik({
|
|
@@ -62,29 +57,8 @@ export const SolidNotifications = () => {
|
|
|
62
57
|
},
|
|
63
58
|
});
|
|
64
59
|
|
|
65
|
-
const severityClass =
|
|
66
|
-
toast?.severity === "error"
|
|
67
|
-
? styles.toastError
|
|
68
|
-
: toast?.severity === "success"
|
|
69
|
-
? styles.toastSuccess
|
|
70
|
-
: toast?.severity === "warn"
|
|
71
|
-
? styles.toastWarn
|
|
72
|
-
: styles.toastInfo;
|
|
73
|
-
|
|
74
60
|
return (
|
|
75
61
|
<form onSubmit={formik.handleSubmit} className={styles.accountForm}>
|
|
76
|
-
{toast ? (
|
|
77
|
-
<div className={`${styles.toast} ${severityClass}`} role="status" aria-live="polite">
|
|
78
|
-
<div>
|
|
79
|
-
<div className={styles.toastTitle}>{toast.summary}</div>
|
|
80
|
-
<div className={styles.toastBody}>{toast.detail}</div>
|
|
81
|
-
</div>
|
|
82
|
-
<button type="button" className={styles.toastClose} onClick={() => setToast(null)} aria-label="Close notification">
|
|
83
|
-
×
|
|
84
|
-
</button>
|
|
85
|
-
</div>
|
|
86
|
-
) : null}
|
|
87
|
-
|
|
88
62
|
<div className={styles.accountScroll}>
|
|
89
63
|
<div className={styles.switchRow}>
|
|
90
64
|
<div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidGlobalSearchElement.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/SolidGlobalSearchElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgF,MAAM,OAAO,CAAC;AAYrG,OAA0B,EAAE,eAAe,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AA0B3G,MAAM,MAAM,eAAe,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;CAClC,CAAA;AAoUD,eAAO,MAAM,2BAA2B,sBAAuB,GAAG,aAAa,GAAG,yBAAyB,MAAM,iBAAiB,MAAM,QAavI,CAAA;AAGD,eAAO,MAAM,mBAAmB,iBAAkB,GAAG,gBAAgB,GAAG,eAAe,GAAG,qBAAqB,GAAG,kBAAkB,YAAY,EAAE,qBAAqB,eAAe,EAAE,QAwBvL,CAAA;AA0HD,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"SolidGlobalSearchElement.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/SolidGlobalSearchElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgF,MAAM,OAAO,CAAC;AAYrG,OAA0B,EAAE,eAAe,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AA0B3G,MAAM,MAAM,eAAe,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;CAClC,CAAA;AAoUD,eAAO,MAAM,2BAA2B,sBAAuB,GAAG,aAAa,GAAG,yBAAyB,MAAM,iBAAiB,MAAM,QAavI,CAAA;AAGD,eAAO,MAAM,mBAAmB,iBAAkB,GAAG,gBAAgB,GAAG,eAAe,GAAG,qBAAqB,GAAG,kBAAkB,YAAY,EAAE,qBAAqB,eAAe,EAAE,QAwBvL,CAAA;AA0HD,eAAO,MAAM,wBAAwB,kFA+qDnC,CAAC"}
|
|
@@ -788,27 +788,61 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
|
|
|
788
788
|
setPredefinedSearchChip(null);
|
|
789
789
|
setPredefinedSearchBaseFilter(null);
|
|
790
790
|
setInputValue("");
|
|
791
|
-
var
|
|
791
|
+
var fieldsData_1 = (_b = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _b === void 0 ? void 0 : _b.solidFieldsMetadata;
|
|
792
792
|
// console.log(`fiels data while rendering solid global search element: `);
|
|
793
793
|
// console.log(fieldsData);
|
|
794
794
|
var layoutChildren = (_f = (_e = (_d = (_c = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _c === void 0 ? void 0 : _c.solidView) === null || _d === void 0 ? void 0 : _d.layout) === null || _e === void 0 ? void 0 : _e.children) !== null && _f !== void 0 ? _f : [];
|
|
795
795
|
var fieldElements_1 = extractFields(layoutChildren);
|
|
796
|
-
|
|
797
|
-
|
|
796
|
+
// Build one entry per layout column (not per field name), so multiple columns
|
|
797
|
+
// sharing the same field name (e.g. several viewMetadata columns with different
|
|
798
|
+
// searchFields/labels) each appear as a separate searchable option.
|
|
799
|
+
var seenKeys_1 = new Set();
|
|
800
|
+
var fieldsList_1 = [];
|
|
801
|
+
// First pass: one entry per unique field name (for non-searchable / filter use)
|
|
802
|
+
Object.entries(fieldsData_1 !== null && fieldsData_1 !== void 0 ? fieldsData_1 : {}).forEach(function (_a) {
|
|
803
|
+
var _b, _c, _d, _e, _f, _g, _h, _j;
|
|
798
804
|
var key = _a[0], value = _a[1];
|
|
799
805
|
var viewFieldElement = fieldElements_1.find(function (f) { var _a; return ((_a = f === null || f === void 0 ? void 0 : f.attrs) === null || _a === void 0 ? void 0 : _a.name) === key; });
|
|
800
|
-
|
|
801
|
-
|
|
806
|
+
seenKeys_1.add(key);
|
|
807
|
+
fieldsList_1.push({
|
|
808
|
+
name: (_c = (_b = viewFieldElement === null || viewFieldElement === void 0 ? void 0 : viewFieldElement.attrs) === null || _b === void 0 ? void 0 : _b.label) !== null && _c !== void 0 ? _c : value.displayName,
|
|
802
809
|
value: key,
|
|
803
810
|
type: value.type,
|
|
804
811
|
ormType: value.ormType,
|
|
805
|
-
matchMode: (
|
|
806
|
-
searchField: (
|
|
807
|
-
isSearchable: (
|
|
808
|
-
relationType: (
|
|
809
|
-
};
|
|
812
|
+
matchMode: (_d = viewFieldElement === null || viewFieldElement === void 0 ? void 0 : viewFieldElement.attrs) === null || _d === void 0 ? void 0 : _d.searchMatchMode,
|
|
813
|
+
searchField: (_f = (_e = viewFieldElement === null || viewFieldElement === void 0 ? void 0 : viewFieldElement.attrs) === null || _e === void 0 ? void 0 : _e.searchField) !== null && _f !== void 0 ? _f : null,
|
|
814
|
+
isSearchable: (_h = (_g = viewFieldElement === null || viewFieldElement === void 0 ? void 0 : viewFieldElement.attrs) === null || _g === void 0 ? void 0 : _g.isSearchable) !== null && _h !== void 0 ? _h : false,
|
|
815
|
+
relationType: (_j = value === null || value === void 0 ? void 0 : value.relationType) !== null && _j !== void 0 ? _j : null,
|
|
816
|
+
});
|
|
817
|
+
});
|
|
818
|
+
// Second pass: for any layout column that shares a field name but has a
|
|
819
|
+
// distinct searchField, add it as an additional searchable entry.
|
|
820
|
+
fieldElements_1.forEach(function (fieldElement) {
|
|
821
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
822
|
+
var key = (_a = fieldElement === null || fieldElement === void 0 ? void 0 : fieldElement.attrs) === null || _a === void 0 ? void 0 : _a.name;
|
|
823
|
+
var searchField = (_b = fieldElement === null || fieldElement === void 0 ? void 0 : fieldElement.attrs) === null || _b === void 0 ? void 0 : _b.searchField;
|
|
824
|
+
var isSearchable = (_d = (_c = fieldElement === null || fieldElement === void 0 ? void 0 : fieldElement.attrs) === null || _c === void 0 ? void 0 : _c.isSearchable) !== null && _d !== void 0 ? _d : false;
|
|
825
|
+
if (!isSearchable || !searchField)
|
|
826
|
+
return;
|
|
827
|
+
// Already covered by the first pass entry for this key?
|
|
828
|
+
var existingEntry = fieldsList_1.find(function (e) { return e.value === key && e.searchField === searchField; });
|
|
829
|
+
if (existingEntry)
|
|
830
|
+
return; // already in list
|
|
831
|
+
var value = (fieldsData_1 !== null && fieldsData_1 !== void 0 ? fieldsData_1 : {})[key];
|
|
832
|
+
if (!value)
|
|
833
|
+
return;
|
|
834
|
+
fieldsList_1.push({
|
|
835
|
+
name: (_f = (_e = fieldElement === null || fieldElement === void 0 ? void 0 : fieldElement.attrs) === null || _e === void 0 ? void 0 : _e.label) !== null && _f !== void 0 ? _f : value.displayName,
|
|
836
|
+
value: key,
|
|
837
|
+
type: value.type,
|
|
838
|
+
ormType: value.ormType,
|
|
839
|
+
matchMode: (_g = fieldElement === null || fieldElement === void 0 ? void 0 : fieldElement.attrs) === null || _g === void 0 ? void 0 : _g.searchMatchMode,
|
|
840
|
+
searchField: searchField,
|
|
841
|
+
isSearchable: true,
|
|
842
|
+
relationType: (_h = value === null || value === void 0 ? void 0 : value.relationType) !== null && _h !== void 0 ? _h : null,
|
|
843
|
+
});
|
|
810
844
|
});
|
|
811
|
-
var filterableFieldsList =
|
|
845
|
+
var filterableFieldsList = fieldsList_1.filter(function (field) {
|
|
812
846
|
switch (field.type) {
|
|
813
847
|
case "mediaSingle":
|
|
814
848
|
case "mediaMultiple":
|
|
@@ -818,7 +852,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
|
|
|
818
852
|
}
|
|
819
853
|
});
|
|
820
854
|
setFields(filterableFieldsList);
|
|
821
|
-
var searchableFieldsList =
|
|
855
|
+
var searchableFieldsList = fieldsList_1.filter(function (field) {
|
|
822
856
|
if (!field.isSearchable)
|
|
823
857
|
return false;
|
|
824
858
|
switch (field.type) {
|
|
@@ -837,7 +871,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
|
|
|
837
871
|
return false;
|
|
838
872
|
}
|
|
839
873
|
});
|
|
840
|
-
var groupableFieldsList =
|
|
874
|
+
var groupableFieldsList = fieldsList_1.filter(function (field) {
|
|
841
875
|
switch (field.type) {
|
|
842
876
|
case "relation":
|
|
843
877
|
// Only include relation if searchField is present
|