@solidxai/core-ui 0.1.5-beta.11 → 0.1.5-beta.13

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 (193) hide show
  1. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
  2. package/dist/components/auth/GoogleAuthChecking.js +10 -10
  3. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  4. package/dist/components/auth/GoogleAuthChecking.tsx +8 -9
  5. package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
  6. package/dist/components/auth/SolidChangeForcePassword.js +9 -10
  7. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  8. package/dist/components/auth/SolidChangeForcePassword.tsx +6 -9
  9. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  10. package/dist/components/auth/SolidForgotPassword.js +8 -8
  11. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  12. package/dist/components/auth/SolidForgotPassword.tsx +6 -8
  13. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  14. package/dist/components/auth/SolidInitialLoginOtp.js +57 -57
  15. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  16. package/dist/components/auth/SolidInitialLoginOtp.tsx +10 -11
  17. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  18. package/dist/components/auth/SolidInitiateRegisterOtp.js +57 -57
  19. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  20. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +10 -11
  21. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  22. package/dist/components/auth/SolidLogin.js +12 -12
  23. package/dist/components/auth/SolidLogin.js.map +1 -1
  24. package/dist/components/auth/SolidLogin.tsx +11 -16
  25. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  26. package/dist/components/auth/SolidRegister.js +19 -19
  27. package/dist/components/auth/SolidRegister.js.map +1 -1
  28. package/dist/components/auth/SolidRegister.tsx +18 -23
  29. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  30. package/dist/components/auth/SolidResetPassword.js +15 -15
  31. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  32. package/dist/components/auth/SolidResetPassword.tsx +7 -8
  33. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  34. package/dist/components/common/GeneralSettings.js +87 -120
  35. package/dist/components/common/GeneralSettings.js.map +1 -1
  36. package/dist/components/common/GeneralSettings.tsx +12 -42
  37. package/dist/components/common/GlobalToast.d.ts +2 -0
  38. package/dist/components/common/GlobalToast.d.ts.map +1 -0
  39. package/dist/components/common/GlobalToast.js +25 -0
  40. package/dist/components/common/GlobalToast.js.map +1 -0
  41. package/dist/components/common/GlobalToast.tsx +25 -0
  42. package/dist/components/common/SolidExport.d.ts.map +1 -1
  43. package/dist/components/common/SolidExport.js +19 -31
  44. package/dist/components/common/SolidExport.js.map +1 -1
  45. package/dist/components/common/SolidExport.tsx +7 -19
  46. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  47. package/dist/components/common/SolidFormStepper.js +41 -41
  48. package/dist/components/common/SolidFormStepper.js.map +1 -1
  49. package/dist/components/common/SolidFormStepper.tsx +5 -6
  50. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  51. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +9 -9
  52. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  53. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +8 -9
  54. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  55. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +8 -8
  56. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  57. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +7 -9
  58. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
  59. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +11 -11
  60. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
  61. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +10 -11
  62. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  63. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +9 -9
  64. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  65. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +8 -9
  66. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  67. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +7 -7
  68. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  69. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +6 -7
  70. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  71. package/dist/components/core/common/SolidGlobalSearchElement.js +78 -21
  72. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  73. package/dist/components/core/common/SolidGlobalSearchElement.tsx +65 -10
  74. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  75. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +6 -8
  76. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  77. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +5 -9
  78. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
  79. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +9 -11
  80. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
  81. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +5 -10
  82. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.d.ts.map +1 -1
  83. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js +5 -6
  84. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js.map +1 -1
  85. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +5 -8
  86. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
  87. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +10 -12
  88. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
  89. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +6 -11
  90. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  91. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +11 -6
  92. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  93. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +13 -1
  94. package/dist/components/core/form/SolidFormUserViewLayout.d.ts.map +1 -1
  95. package/dist/components/core/form/SolidFormUserViewLayout.js +7 -8
  96. package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
  97. package/dist/components/core/form/SolidFormUserViewLayout.tsx +5 -7
  98. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  99. package/dist/components/core/form/SolidFormView.js +12 -21
  100. package/dist/components/core/form/SolidFormView.js.map +1 -1
  101. package/dist/components/core/form/SolidFormView.tsx +11 -33
  102. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  103. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +37 -26
  104. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  105. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -5
  106. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  107. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +11 -11
  108. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  109. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +9 -11
  110. package/dist/components/core/kanban/KanbanUserViewLayout.d.ts.map +1 -1
  111. package/dist/components/core/kanban/KanbanUserViewLayout.js +7 -8
  112. package/dist/components/core/kanban/KanbanUserViewLayout.js.map +1 -1
  113. package/dist/components/core/kanban/KanbanUserViewLayout.tsx +4 -6
  114. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  115. package/dist/components/core/kanban/SolidKanbanView.js +5 -7
  116. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  117. package/dist/components/core/kanban/SolidKanbanView.tsx +4 -9
  118. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
  119. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +13 -13
  120. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  121. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +5 -6
  122. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  123. package/dist/components/core/list/SolidListView.js +20 -67
  124. package/dist/components/core/list/SolidListView.js.map +1 -1
  125. package/dist/components/core/list/SolidListView.tsx +9 -76
  126. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  127. package/dist/components/core/model/CreateModel.js +15 -25
  128. package/dist/components/core/model/CreateModel.js.map +1 -1
  129. package/dist/components/core/model/CreateModel.tsx +12 -32
  130. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  131. package/dist/components/core/model/FieldMetaData.js +6 -17
  132. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  133. package/dist/components/core/model/FieldMetaData.tsx +5 -26
  134. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  135. package/dist/components/core/model/ModelMetaData.js +48 -55
  136. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  137. package/dist/components/core/model/ModelMetaData.tsx +4 -22
  138. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  139. package/dist/components/core/module/CreateModule.js +42 -44
  140. package/dist/components/core/module/CreateModule.js.map +1 -1
  141. package/dist/components/core/module/CreateModule.tsx +13 -27
  142. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  143. package/dist/components/core/module/ModuleListViewData.js +11 -7
  144. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  145. package/dist/components/core/module/ModuleListViewData.tsx +10 -8
  146. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  147. package/dist/components/core/tree/SolidTreeView.js +32 -69
  148. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  149. package/dist/components/core/tree/SolidTreeView.tsx +8 -47
  150. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  151. package/dist/components/core/users/CreateUser.js +24 -37
  152. package/dist/components/core/users/CreateUser.js.map +1 -1
  153. package/dist/components/core/users/CreateUser.tsx +8 -46
  154. package/dist/components/core/users/UserListView.d.ts.map +1 -1
  155. package/dist/components/core/users/UserListView.js +9 -16
  156. package/dist/components/core/users/UserListView.js.map +1 -1
  157. package/dist/components/core/users/UserListView.tsx +5 -21
  158. package/dist/components/layout/AdminLayout.d.ts.map +1 -1
  159. package/dist/components/layout/AdminLayout.js +4 -2
  160. package/dist/components/layout/AdminLayout.js.map +1 -1
  161. package/dist/components/layout/AdminLayout.tsx +4 -2
  162. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  163. package/dist/components/layout/AppSidebar.js +1 -2
  164. package/dist/components/layout/AppSidebar.js.map +1 -1
  165. package/dist/components/layout/AppSidebar.tsx +0 -2
  166. package/dist/components/layout/Layout.d.ts.map +1 -1
  167. package/dist/components/layout/Layout.js +2 -1
  168. package/dist/components/layout/Layout.js.map +1 -1
  169. package/dist/components/layout/Layout.tsx +2 -0
  170. package/dist/components/layout/navbar-one.d.ts.map +1 -1
  171. package/dist/components/layout/navbar-one.js +1 -2
  172. package/dist/components/layout/navbar-one.js.map +1 -1
  173. package/dist/components/layout/navbar-one.tsx +0 -2
  174. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  175. package/dist/components/layout/navbar-two-menu.js +50 -24
  176. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  177. package/dist/components/layout/navbar-two-menu.tsx +48 -30
  178. package/dist/index.d.ts +4 -0
  179. package/dist/index.d.ts.map +1 -1
  180. package/dist/index.js +3 -0
  181. package/dist/index.js.map +1 -1
  182. package/dist/index.ts +4 -0
  183. package/dist/redux/features/toastSlice.d.ts +15 -0
  184. package/dist/redux/features/toastSlice.d.ts.map +1 -0
  185. package/dist/redux/features/toastSlice.js +20 -0
  186. package/dist/redux/features/toastSlice.js.map +1 -0
  187. package/dist/redux/features/toastSlice.ts +35 -0
  188. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  189. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  190. package/dist/redux/store/defaultStoreConfig.js +2 -1
  191. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  192. package/dist/redux/store/defaultStoreConfig.ts +2 -0
  193. package/package.json +1 -1
@@ -6,7 +6,7 @@ import React, {
6
6
  useRef,
7
7
  useState,
8
8
  } from "react";
9
- import { Toast } from "primereact/toast";
9
+ import { showToast } from "../../../redux/features/toastSlice";
10
10
  import { useDispatch, useSelector } from "react-redux";
11
11
  import { showNavbar, toggleNavbar } from "../../../redux/features/navbarSlice";
12
12
  import { useGetSolidViewLayoutQuery } from "../../../redux/api/solidViewApi";
@@ -122,7 +122,6 @@ const DEFAULT_PAGE_SIZE = 25;
122
122
  // ─── Component ────────────────────────────────────────────────────────────────
123
123
 
124
124
  export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams>((params, ref) => {
125
- const toast = useRef<Toast>(null);
126
125
  const dispatch = useDispatch();
127
126
  const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);
128
127
  const searchParams = useSearchParams();
@@ -915,12 +914,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
915
914
 
916
915
  } catch (error: any) {
917
916
  setTreeNodes([]);
918
- toast.current?.show({
919
- severity: "error",
920
- summary: "Failed to load tree",
921
- detail: error?.data?.message || error?.message || "Unable to load grouped data",
922
- life: 4000,
923
- });
917
+ dispatch(showToast({ severity: "error", summary: "Failed to load tree", detail: error?.data?.message || error?.message || "Unable to load grouped data", life: 4000 }));
924
918
  } finally {
925
919
  setTreeLoading(false);
926
920
  }
@@ -1000,12 +994,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1000
994
  });
1001
995
  }
1002
996
  } catch (error: any) {
1003
- toast.current?.show({
1004
- severity: "error",
1005
- summary: "Failed to expand node",
1006
- detail: error?.data?.message || error?.message || "Unable to load children",
1007
- life: 4000,
1008
- });
997
+ dispatch(showToast({ severity: "error", summary: "Failed to expand node", detail: error?.data?.message || error?.message || "Unable to load children", life: 4000 }));
1009
998
  setTreeNodes((prev) => updateNodeChildren(prev, nodeKey, []));
1010
999
  } finally {
1011
1000
  setTreeLoading(false);
@@ -1131,21 +1120,11 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1131
1120
  deleteManySolidEntities(deleteList)
1132
1121
  .unwrap()
1133
1122
  .then(() => {
1134
- toast.current?.show({
1135
- severity: 'success',
1136
- summary: 'Deleted',
1137
- detail: ERROR_MESSAGES.RECORD_DELETE,
1138
- life: 3000
1139
- });
1123
+ dispatch(showToast({ severity: 'success', summary: 'Deleted', detail: ERROR_MESSAGES.RECORD_DELETE, life: 3000 }));
1140
1124
  setDeleteRecordsDialogVisible(false);
1141
1125
  })
1142
1126
  .catch((error) => {
1143
- toast.current?.show({
1144
- severity: 'error',
1145
- summary: 'Delete Failed',
1146
- detail: error?.data?.message,
1147
- life: 4000
1148
- });
1127
+ dispatch(showToast({ severity: 'error', summary: 'Delete Failed', detail: error?.data?.message, life: 4000 }));
1149
1128
  });
1150
1129
  };
1151
1130
 
@@ -1455,28 +1434,12 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1455
1434
 
1456
1435
  if (response?.data?.statusCode === 200) {
1457
1436
  setDeleteEntity(false);
1458
- toast.current?.show({
1459
- severity: "success",
1460
- summary: ERROR_MESSAGES.DELETED,
1461
- detail: ERROR_MESSAGES.ENTITY_DELETE,
1462
- life: 3000,
1463
- });
1437
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.DELETED, detail: ERROR_MESSAGES.ENTITY_DELETE, life: 3000 }));
1464
1438
  } else {
1465
- toast.current?.show({
1466
- severity: "error",
1467
- summary: ERROR_MESSAGES.DELETE_FAIELD,
1468
- detail: response?.error?.data?.error,
1469
- sticky: true, // stays until user closes
1470
- });
1439
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.DELETE_FAIELD, detail: response?.error?.data?.error, sticky: true }));
1471
1440
  }
1472
1441
  } catch (error: any) {
1473
- toast.current?.show({
1474
- severity: "error",
1475
- summary: ERROR_MESSAGES.DELETE_FAIELD,
1476
- detail: ERROR_MESSAGES.SOMETHING_WRONG,
1477
- sticky: true, // stays until user closes
1478
-
1479
- });
1442
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.DELETE_FAIELD, detail: ERROR_MESSAGES.SOMETHING_WRONG, sticky: true }));
1480
1443
  }
1481
1444
  };
1482
1445
 
@@ -1593,8 +1556,6 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1593
1556
 
1594
1557
  return (
1595
1558
  <div className="page-parent-wrapper">
1596
- <Toast ref={toast} />
1597
-
1598
1559
  {/* ── Header ── */}
1599
1560
  <div className="page-header flex-column lg:flex-row">
1600
1561
  <div className="flex justify-content-between w-full">
@@ -1 +1 @@
1
- {"version":3,"file":"CreateUser.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"AAiCA,QAAA,MAAM,UAAU,qBAAsB,GAAG,4CAsdxC,CAAC;AAGF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"CreateUser.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"AAkCA,QAAA,MAAM,UAAU,qBAAsB,GAAG,4CA+axC,CAAC;AAGF,eAAe,UAAU,CAAC"}
@@ -60,14 +60,15 @@ import { InputText } from "primereact/inputtext";
60
60
  import { Message } from "primereact/message";
61
61
  import { Panel } from "primereact/panel";
62
62
  import { Password } from "primereact/password";
63
- import { Toast } from "primereact/toast";
64
63
  import { classNames } from "primereact/utils";
65
- import { useEffect, useRef, useState } from "react";
64
+ import { useEffect, useState } from "react";
65
+ import { useDispatch } from "react-redux";
66
66
  import * as Yup from "yup";
67
+ import { showToast } from "../../../redux/features/toastSlice";
67
68
  var CreateUser = function (_a) {
68
69
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
69
70
  var data = _a.data, params = _a.params;
70
- var toast = useRef(null);
71
+ var dispatch = useDispatch();
71
72
  var pathname = usePathname();
72
73
  var router = useRouter();
73
74
  var _s = useState([]), selectedRoles = _s[0], setSelectedRoles = _s[1];
@@ -154,15 +155,8 @@ var CreateUser = function (_a) {
154
155
  case 1:
155
156
  errors = _a.sent();
156
157
  errorMessages = Object.values(errors);
157
- if (errorMessages.length > 0 && toast.current) {
158
- toast.current.show({
159
- severity: "error",
160
- summary: ERROR_MESSAGES.SEND_REPORT,
161
- // sticky: true,
162
- life: 3000,
163
- //@ts-ignore
164
- content: function (props) { return (_jsx("div", { className: "flex flex-column align-items-left", style: { flex: "1" }, children: errorMessages.map(function (m, index) { return (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: m }) }, index)); }) })); },
165
- });
158
+ if (errorMessages.length > 0) {
159
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.join(', '), life: 3000 }));
166
160
  }
167
161
  return [2 /*return*/];
168
162
  }
@@ -173,7 +167,6 @@ var CreateUser = function (_a) {
173
167
  }
174
168
  useEffect(function () {
175
169
  var handleError = function (errorToast) {
176
- var _a;
177
170
  var errorMessage = [ERROR_MESSAGES.ERROR_OCCURED];
178
171
  if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
179
172
  errorMessage = errorToast.data.message;
@@ -181,14 +174,8 @@ var CreateUser = function (_a) {
181
174
  else {
182
175
  errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];
183
176
  }
184
- (_a = toast.current) === null || _a === void 0 ? void 0 : _a.show({
185
- severity: 'error',
186
- summary: ERROR_MESSAGES.ERROR,
187
- detail: errorMessage,
188
- sticky: true,
189
- //@ts-ignore
190
- content: function (props) { return (_jsx("div", { className: "flex flex-column align-items-left", style: { flex: "1" }, children: Array.isArray(errorMessage) ? (errorMessage.map(function (message, index) { return (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: message.trim() }) }, index)); })) : (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: errorMessage === null || errorMessage === void 0 ? void 0 : errorMessage.trim() }) })) })); },
191
- });
177
+ var detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : errorMessage;
178
+ dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: detail }));
192
179
  };
193
180
  // Check and handle errors from each API operation
194
181
  if (userCreateError) {
@@ -242,22 +229,22 @@ var CreateUser = function (_a) {
242
229
  router.back();
243
230
  }
244
231
  }, [isSuccess, isDeleteUserSuceess, isUpdateuserSuceess]);
245
- return (_jsxs("div", { className: "solid-form-wrapper", children: [_jsx(Toast, { ref: toast }), _jsx("div", { className: "solid-form-section", children: _jsxs("form", { onSubmit: formik.handleSubmit, children: [_jsx("div", { className: "solid-form-header", children: params.id === "new" ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex align-items-center gap-3", children: [_jsx(BackButton, {}), _jsx("div", { className: "form-wrapper-title", children: "Create User" })] }), _jsxs("div", { className: "gap-3 flex", children: [formik.dirty &&
246
- _jsx(Button, { label: "Save", size: "small", type: "submit" }), _jsx(CancelButton, {})] })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex align-items-center gap-3", children: [_jsx(BackButton, {}), _jsx("div", { className: "form-wrapper-title", children: "Update User" })] }), _jsx("div", { children: _jsxs("div", { className: "gap-3 flex", children: [formik.dirty &&
247
- _jsx(Button, { label: "Save", size: "small", type: "submit" }), data &&
248
- _jsx(Button, { outlined: true, label: "Delete", size: "small", severity: "danger", type: "button", onClick: function () { return deleteUser(data.id); } }), _jsx(CancelButton, {})] }) })] })) }), _jsx(SolidFormHeader, {}), _jsx("div", { className: "px-4 py-3 md:p-4 solid-form-content", children: _jsx("div", { className: "grid", children: _jsxs("div", { className: "col-12 lg:col-10 xl:col-8 mx-auto", children: [_jsx(Panel, { header: "Basic Info", className: "solid-column-panel", children: _jsxs("div", { className: "grid formgrid mt-3", children: [_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2", children: [_jsx("label", { htmlFor: "fullName", className: "form-field-label", children: "Full Name" }), _jsx(InputText, { type: "text", id: "fullName", name: "fullName", autoComplete: "off", onChange: formik.handleChange, value: formik.values.fullName, className: classNames("", {
249
- "p-invalid": formik.touched.fullName && formik.errors.fullName,
250
- }) }), isFormFieldValid(formik, "fullName") && (_jsx(Message, { severity: "error", text: (_c = (_b = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _b === void 0 ? void 0 : _b.fullName) === null || _c === void 0 ? void 0 : _c.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 mt-3 md:mt-3", children: [_jsx("label", { htmlFor: "username", className: "form-field-label", children: "Username" }), _jsx(InputText, { type: "text", id: "username", name: "username", autoComplete: "off", disabled: data ? true : false, onChange: formik.handleChange, value: formik.values.username, className: classNames("", {
251
- "p-invalid": formik.touched.username && formik.errors.username,
252
- }) }), isFormFieldValid(formik, "username") && (_jsx(Message, { severity: "error", text: (_e = (_d = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _d === void 0 ? void 0 : _d.username) === null || _e === void 0 ? void 0 : _e.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "email", className: "form-field-label", children: "Email" }), _jsx(InputText, { type: "text", id: "email", name: "email", autoComplete: "off", disabled: data ? true : false, onChange: formik.handleChange, value: formik.values.email, className: classNames("", {
253
- "p-invalid": formik.touched.email && formik.errors.email,
254
- }) }), isFormFieldValid(formik, "email") && (_jsx(Message, { severity: "error", text: (_g = (_f = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _f === void 0 ? void 0 : _f.email) === null || _g === void 0 ? void 0 : _g.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "mobile", className: "form-field-label", children: "Mobile" }), _jsx(InputText, { type: "text", id: "mobile", name: "mobile", autoComplete: "off", onChange: formik.handleChange, value: formik.values.mobile, className: classNames("", {
255
- "p-invalid": formik.touched.mobile && formik.errors.mobile,
256
- }) }), isFormFieldValid(formik, "mobile ") && (_jsx(Message, { severity: "error", text: (_j = (_h = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _h === void 0 ? void 0 : _h.mobile) === null || _j === void 0 ? void 0 : _j.toString() }))] }), params.id === "new" && _jsxs(_Fragment, { children: [_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 py-4", children: [_jsx("label", { htmlFor: "Password", className: "form-field-label", children: "Password" }), _jsx(Password, { id: "password", name: "password", autoComplete: "off", "aria-autocomplete": "none", value: formik.values.password, onChange: formik.handleChange, onBlur: formik.handleBlur, toggleMask: true, invalid: isFormFieldValid(formik, "password"), inputClassName: "w-full", feedback: false }), isFormFieldValid(formik, "password") && (_jsx(Message, { severity: "error", text: (_l = (_k = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _k === void 0 ? void 0 : _k.password) === null || _l === void 0 ? void 0 : _l.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4", children: [_jsx("label", { htmlFor: "Confirm Password", className: "form-field-label", children: "Confirm Password" }), _jsx(Password, { id: "confirmPassword", name: "confirmPassword", autoComplete: "off", "aria-autocomplete": "none", value: formik.values.confirmPassword, onChange: formik.handleChange, onBlur: formik.handleBlur, toggleMask: true, invalid: isFormFieldValid(formik, "confirmPassword"), inputClassName: "w-full", feedback: false }), isFormFieldValid(formik, "confirmPassword") && (_jsx(Message, { severity: "error", text: (_o = (_m = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _m === void 0 ? void 0 : _m.confirmPassword) === null || _o === void 0 ? void 0 : _o.toString() }))] })] }), params.id !== "new" && (_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "failedLoginAttempts", className: "form-field-label", children: "Failed Login Attempts" }), _jsx(InputText, { type: "number", id: "failedLoginAttempts", name: "failedLoginAttempts", autoComplete: "off", onChange: formik.handleChange, value: formik.values.failedLoginAttempts, className: classNames("", {
257
- "p-invalid": formik.touched.failedLoginAttempts &&
258
- formik.errors.failedLoginAttempts,
259
- }) }), formik.touched.failedLoginAttempts &&
260
- formik.errors.failedLoginAttempts && (_jsx(Message, { severity: "error", text: (_p = formik.errors.failedLoginAttempts) === null || _p === void 0 ? void 0 : _p.toString() })), _jsx("small", { className: "text-color-secondary", children: "Your account has been locked due to repeated unsuccessful login attempts. Please contact your system admin." })] }))] }) }), _jsx(Panel, { toggleable: true, header: "Roles", className: "solid-column-panel mt-5", children: _jsx("div", { className: "formgrid grid mt-4", children: ((_q = rolesData === null || rolesData === void 0 ? void 0 : rolesData.data) === null || _q === void 0 ? void 0 : _q.records) && ((_r = rolesData === null || rolesData === void 0 ? void 0 : rolesData.data) === null || _r === void 0 ? void 0 : _r.records.map(function (role, i) { return (_jsxs("div", { className: "field col-6 flex gap-2 ".concat(i >= 2 ? 'mt-3' : ''), children: [_jsx(Checkbox, { inputId: role.name, checked: selectedRoles.includes(role.name), onChange: function () { return handleCheckboxChange(role.name); } }), _jsxs("label", { htmlFor: role.name, children: [" ", role.name] })] }, role.name)); })) }) })] }) }) })] }) })] }));
232
+ return (_jsx("div", { className: "solid-form-wrapper", children: _jsx("div", { className: "solid-form-section", children: _jsxs("form", { onSubmit: formik.handleSubmit, children: [_jsx("div", { className: "solid-form-header", children: params.id === "new" ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex align-items-center gap-3", children: [_jsx(BackButton, {}), _jsx("div", { className: "form-wrapper-title", children: "Create User" })] }), _jsxs("div", { className: "gap-3 flex", children: [formik.dirty &&
233
+ _jsx(Button, { label: "Save", size: "small", type: "submit" }), _jsx(CancelButton, {})] })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex align-items-center gap-3", children: [_jsx(BackButton, {}), _jsx("div", { className: "form-wrapper-title", children: "Update User" })] }), _jsx("div", { children: _jsxs("div", { className: "gap-3 flex", children: [formik.dirty &&
234
+ _jsx(Button, { label: "Save", size: "small", type: "submit" }), data &&
235
+ _jsx(Button, { outlined: true, label: "Delete", size: "small", severity: "danger", type: "button", onClick: function () { return deleteUser(data.id); } }), _jsx(CancelButton, {})] }) })] })) }), _jsx(SolidFormHeader, {}), _jsx("div", { className: "px-4 py-3 md:p-4 solid-form-content", children: _jsx("div", { className: "grid", children: _jsxs("div", { className: "col-12 lg:col-10 xl:col-8 mx-auto", children: [_jsx(Panel, { header: "Basic Info", className: "solid-column-panel", children: _jsxs("div", { className: "grid formgrid mt-3", children: [_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2", children: [_jsx("label", { htmlFor: "fullName", className: "form-field-label", children: "Full Name" }), _jsx(InputText, { type: "text", id: "fullName", name: "fullName", autoComplete: "off", onChange: formik.handleChange, value: formik.values.fullName, className: classNames("", {
236
+ "p-invalid": formik.touched.fullName && formik.errors.fullName,
237
+ }) }), isFormFieldValid(formik, "fullName") && (_jsx(Message, { severity: "error", text: (_c = (_b = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _b === void 0 ? void 0 : _b.fullName) === null || _c === void 0 ? void 0 : _c.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 mt-3 md:mt-3", children: [_jsx("label", { htmlFor: "username", className: "form-field-label", children: "Username" }), _jsx(InputText, { type: "text", id: "username", name: "username", autoComplete: "off", disabled: data ? true : false, onChange: formik.handleChange, value: formik.values.username, className: classNames("", {
238
+ "p-invalid": formik.touched.username && formik.errors.username,
239
+ }) }), isFormFieldValid(formik, "username") && (_jsx(Message, { severity: "error", text: (_e = (_d = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _d === void 0 ? void 0 : _d.username) === null || _e === void 0 ? void 0 : _e.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "email", className: "form-field-label", children: "Email" }), _jsx(InputText, { type: "text", id: "email", name: "email", autoComplete: "off", disabled: data ? true : false, onChange: formik.handleChange, value: formik.values.email, className: classNames("", {
240
+ "p-invalid": formik.touched.email && formik.errors.email,
241
+ }) }), isFormFieldValid(formik, "email") && (_jsx(Message, { severity: "error", text: (_g = (_f = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _f === void 0 ? void 0 : _f.email) === null || _g === void 0 ? void 0 : _g.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "mobile", className: "form-field-label", children: "Mobile" }), _jsx(InputText, { type: "text", id: "mobile", name: "mobile", autoComplete: "off", onChange: formik.handleChange, value: formik.values.mobile, className: classNames("", {
242
+ "p-invalid": formik.touched.mobile && formik.errors.mobile,
243
+ }) }), isFormFieldValid(formik, "mobile ") && (_jsx(Message, { severity: "error", text: (_j = (_h = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _h === void 0 ? void 0 : _h.mobile) === null || _j === void 0 ? void 0 : _j.toString() }))] }), params.id === "new" && _jsxs(_Fragment, { children: [_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 py-4", children: [_jsx("label", { htmlFor: "Password", className: "form-field-label", children: "Password" }), _jsx(Password, { id: "password", name: "password", autoComplete: "off", "aria-autocomplete": "none", value: formik.values.password, onChange: formik.handleChange, onBlur: formik.handleBlur, toggleMask: true, invalid: isFormFieldValid(formik, "password"), inputClassName: "w-full", feedback: false }), isFormFieldValid(formik, "password") && (_jsx(Message, { severity: "error", text: (_l = (_k = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _k === void 0 ? void 0 : _k.password) === null || _l === void 0 ? void 0 : _l.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4", children: [_jsx("label", { htmlFor: "Confirm Password", className: "form-field-label", children: "Confirm Password" }), _jsx(Password, { id: "confirmPassword", name: "confirmPassword", autoComplete: "off", "aria-autocomplete": "none", value: formik.values.confirmPassword, onChange: formik.handleChange, onBlur: formik.handleBlur, toggleMask: true, invalid: isFormFieldValid(formik, "confirmPassword"), inputClassName: "w-full", feedback: false }), isFormFieldValid(formik, "confirmPassword") && (_jsx(Message, { severity: "error", text: (_o = (_m = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _m === void 0 ? void 0 : _m.confirmPassword) === null || _o === void 0 ? void 0 : _o.toString() }))] })] }), params.id !== "new" && (_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "failedLoginAttempts", className: "form-field-label", children: "Failed Login Attempts" }), _jsx(InputText, { type: "number", id: "failedLoginAttempts", name: "failedLoginAttempts", autoComplete: "off", onChange: formik.handleChange, value: formik.values.failedLoginAttempts, className: classNames("", {
244
+ "p-invalid": formik.touched.failedLoginAttempts &&
245
+ formik.errors.failedLoginAttempts,
246
+ }) }), formik.touched.failedLoginAttempts &&
247
+ formik.errors.failedLoginAttempts && (_jsx(Message, { severity: "error", text: (_p = formik.errors.failedLoginAttempts) === null || _p === void 0 ? void 0 : _p.toString() })), _jsx("small", { className: "text-color-secondary", children: "Your account has been locked due to repeated unsuccessful login attempts. Please contact your system admin." })] }))] }) }), _jsx(Panel, { toggleable: true, header: "Roles", className: "solid-column-panel mt-5", children: _jsx("div", { className: "formgrid grid mt-4", children: ((_q = rolesData === null || rolesData === void 0 ? void 0 : rolesData.data) === null || _q === void 0 ? void 0 : _q.records) && ((_r = rolesData === null || rolesData === void 0 ? void 0 : rolesData.data) === null || _r === void 0 ? void 0 : _r.records.map(function (role, i) { return (_jsxs("div", { className: "field col-6 flex gap-2 ".concat(i >= 2 ? 'mt-3' : ''), children: [_jsx(Checkbox, { inputId: role.name, checked: selectedRoles.includes(role.name), onChange: function () { return handleCheckboxChange(role.name); } }), _jsxs("label", { htmlFor: role.name, children: [" ", role.name] })] }, role.name)); })) }) })] }) }) })] }) }) }));
261
248
  };
262
249
  export default CreateUser;
263
250
  //# sourceMappingURL=CreateUser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateUser.js","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { BackButton } from \"../../../components/common/BackButton\";\nimport { CancelButton } from \"../../../components/common/CancelButton\";\nimport { SolidBreadcrumb } from \"../../../components/common/SolidBreadcrumb\";\nimport { SolidFormHeader } from \"../../../components/common/SolidFormHeader\";\nimport { SolidFormStepper } from \"../../../components/common/SolidFormStepper\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useRegisterPrivateMutation, useUpdateUserMutation } from \"../../../redux/api/authApi\";\nimport { useGetrolesQuery } from \"../../../redux/api/roleApi\";\nimport { useDeleteUserMutation } from \"../../../redux/api/userApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Button } from \"primereact/button\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Divider } from \"primereact/divider\";\nimport { InputText } from \"primereact/inputtext\";\nimport { Message } from \"primereact/message\";\nimport { Panel } from \"primereact/panel\";\nimport { Password } from \"primereact/password\";\nimport { Toast } from \"primereact/toast\";\nimport { classNames } from \"primereact/utils\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as Yup from \"yup\";\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst CreateUser = ({ data, params }: any) => {\n\n const toast = useRef<Toast>(null);\n const pathname = usePathname();\n const router = useRouter();\n const [selectedRoles, setSelectedRoles] = useState<string[]>([]);\n\n const [registerPrivate, { isLoading, error: userCreateError, isSuccess, data: user }] = useRegisterPrivateMutation();\n const [\n updateUser,\n {\n isLoading: isuserUpdating,\n isSuccess: isUpdateuserSuceess,\n isError: isuserUpdateError,\n error: userUpdateError,\n data: updateduser,\n },\n ] = useUpdateUserMutation();\n\n const [deleteUser, {\n isLoading: isUserDeleted,\n isSuccess: isDeleteUserSuceess,\n isError: isUserDeleteError,\n error: UserDeleteError,\n data: DeletedUser,\n },] = useDeleteUserMutation();\n\n const { data: rolesData } = useGetrolesQuery(\"\");\n // const [\n // createrolebulk,\n // { isLoading, isSuccess, isError, error, data: roles },\n // ] = useCreateuserrolebulkMutation();\n\n useEffect(() => {\n if (data && data.roles) {\n const userRoles = data.roles.map((role: any) => role.name);\n setSelectedRoles(userRoles);\n }\n }, [data]);\n\n const handleCheckboxChange = (roleName: string) => {\n let updatedRoles;\n if (selectedRoles.includes(roleName)) {\n updatedRoles = selectedRoles.filter((name) => name !== roleName);\n } else {\n updatedRoles = [...selectedRoles, roleName];\n }\n setSelectedRoles(updatedRoles);\n formik.setFieldTouched('roles', true); // fake \"touched\"\n formik.setFieldValue('roles', updatedRoles);\n };\n\n const initialValues = {\n fullName: data ? data.fullName : \"\",\n username: data ? data.username : \"\",\n email: data ? data.email : \"\",\n mobile: data ? data.mobile : \"\",\n password: \"\",\n confirmPassword: \"\",\n failedLoginAttempts: data ? data.failedLoginAttempts : 0,\n };\n\n const validationSchema = Yup.object({\n fullName: Yup.string().required(),\n username: Yup.string()\n .required('Username is required'), // Must be provided\n // .min(3, 'Username must be at least 3 characters long') // Minimum length\n // .max(20, 'Username cannot be longer than 20 characters') // Maximum length\n // .matches(\n // /^[a-zA-Z0-9_.-]*$/,\n // 'Username can only contain letters, numbers, underscores, periods, and hyphens'\n // ) // Allowed characters\n // .matches(\n // /^[a-zA-Z]/,\n // 'Username must start with a letter'\n // ),\n email: Yup\n .string()\n .email(ERROR_MESSAGES.FIELD_INVALID('email address'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Email')),\n password: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).nullable(),\n confirmPassword: Yup.string()\n .when('password', {\n is: (val: any) => !!val, // only validate if password is filled\n then: (schema) =>\n schema\n .oneOf([Yup.ref('password')], ERROR_MESSAGES.FIELD_MUST_MATCH('Password'))\n .nullable(),\n otherwise: (schema) => schema.notRequired().nullable(),\n }),\n mobile: Yup.number().required(ERROR_MESSAGES.FIELD_REUQIRED('Mobile')),\n failedLoginAttempts: Yup.number()\n .typeError(\"Failed Login Attempts must be a number\")\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n ),\n });\n\n\n const isFormFieldValid = (formik: any, fieldName: string) => {\n return formik.touched[fieldName] && formik.errors[fieldName];\n };\n\n\n const showError = async (submit?: boolean) => {\n const errors = await formik.validateForm();\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0 && toast.current) {\n toast.current.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.SEND_REPORT,\n // sticky: true,\n life: 3000,\n //@ts-ignore\n content: (props) => (\n <div\n className=\"flex flex-column align-items-left\"\n style={{ flex: \"1\" }}\n >\n {errorMessages.map((m: any, index: number) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{m}</span>\n </div>\n ))}\n </div>\n ),\n });\n }\n };\n\n function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n toast.current?.show({\n severity: 'error',\n summary: ERROR_MESSAGES.ERROR,\n detail: errorMessage,\n sticky: true,\n //@ts-ignore\n content: (props) => (\n <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n {Array.isArray(errorMessage) ? (\n errorMessage.map((message, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{message.trim()}</span>\n </div>\n ))\n ) : (\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{errorMessage?.trim()}</span>\n </div>\n )}\n </div>\n ),\n });\n };\n\n // Check and handle errors from each API operation\n if (userCreateError) {\n handleError(userCreateError)\n }\n if (userUpdateError) {\n handleError(userUpdateError)\n }\n\n }, [\n userCreateError, userUpdateError\n ]);\n\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n if (data) {\n const userData: any = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n roles: selectedRoles,\n failedLoginAttempts: values.failedLoginAttempts,\n };\n if (values.password) {\n userData.password = values.password;\n }\n updateUser({ id: data.id, data: userData });\n\n } else {\n const userData = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n password: values.password,\n roles: selectedRoles,\n failedLoginAttempts: values.failedLoginAttempts,\n };\n\n registerPrivate(userData)\n }\n },\n });\n\n useEffect(() => {\n if (isSuccess == true || isDeleteUserSuceess === true || isUpdateuserSuceess === true) {\n router.back();\n }\n }, [isSuccess, isDeleteUserSuceess, isUpdateuserSuceess])\n\n return (\n <div className=\"solid-form-wrapper\">\n <Toast ref={toast} />\n <div className=\"solid-form-section\" >\n <form onSubmit={formik.handleSubmit}>\n <div className=\"solid-form-header\">\n {params.id === \"new\" ? (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Create User</div>\n </div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n <CancelButton />\n </div>\n </>\n ) : (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Update User</div>\n </div>\n <div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n {data &&\n <Button outlined label=\"Delete\" size=\"small\" severity=\"danger\" type=\"button\" onClick={() => deleteUser(data.id)} />\n }\n <CancelButton />\n </div>\n </div>\n </>\n )}\n </div>\n <SolidFormHeader />\n {/* <div className=\"solid-form-stepper\">\n <SolidFormStepper />\n </div> */}\n <div className=\"px-4 py-3 md:p-4 solid-form-content\">\n <div className=\"grid\">\n <div className=\"col-12 lg:col-10 xl:col-8 mx-auto\">\n {/* <p className=\"form-wrapper-heading text-base\">Basic Info</p> */}\n <Panel header=\"Basic Info\" className=\"solid-column-panel\">\n <div className=\"grid formgrid mt-3\">\n <div className=\"field col-12 md:col-6 flex flex-column gap-2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">\n Full Name\n </label>\n <InputText\n type=\"text\"\n id=\"fullName\"\n name=\"fullName\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.fullName}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.fullName && formik.errors.fullName,\n })}\n />\n {isFormFieldValid(formik, \"fullName\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.fullName?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 mt-3 md:mt-3\">\n <label htmlFor=\"username\" className=\"form-field-label\">\n Username\n </label>\n <InputText\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.username}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.username && formik.errors.username,\n })}\n />\n {isFormFieldValid(formik, \"username\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.username?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"email\" className=\"form-field-label\">\n Email\n </label>\n <InputText\n type=\"text\"\n id=\"email\"\n name=\"email\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.email}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.email && formik.errors.email,\n })}\n />\n {isFormFieldValid(formik, \"email\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.email?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"mobile\" className=\"form-field-label\">\n Mobile\n </label>\n <InputText\n type=\"text\"\n id=\"mobile\"\n name=\"mobile\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.mobile}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.mobile && formik.errors.mobile,\n })}\n />\n {isFormFieldValid(formik, \"mobile \") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.mobile?.toString()}\n />\n )}\n </div>\n {params.id === \"new\" && <>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 py-4\">\n <label htmlFor=\"Password\" className=\"form-field-label\">\n Password\n </label>\n <Password\n id=\"password\"\n name=\"password\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.password}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"password\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"password\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.password?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4\">\n <label htmlFor=\"Confirm Password\" className=\"form-field-label\">\n Confirm Password\n </label>\n <Password\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"confirmPassword\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"confirmPassword\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.confirmPassword?.toString()}\n />\n )}\n </div>\n </>}\n {params.id !== \"new\" && (\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"failedLoginAttempts\" className=\"form-field-label\">\n Failed Login Attempts\n </label>\n <InputText\n type=\"number\"\n id=\"failedLoginAttempts\"\n name=\"failedLoginAttempts\"\n autoComplete=\"off\"\n onChange={formik.handleChange}\n value={formik.values.failedLoginAttempts}\n className={classNames(\"\", {\n \"p-invalid\":\n formik.touched.failedLoginAttempts &&\n formik.errors.failedLoginAttempts,\n })}\n />\n {formik.touched.failedLoginAttempts &&\n formik.errors.failedLoginAttempts && (\n <Message\n severity=\"error\"\n text={formik.errors.failedLoginAttempts?.toString()}\n />\n )}\n <small className=\"text-color-secondary\">\n Your account has been locked due to repeated unsuccessful login attempts. Please contact your system admin.\n </small>\n </div>\n )}\n </div>\n </Panel>\n\n {/* <Divider /> */}\n {/* <p className=\"form-wrapper-heading text-base\" style={{ fontSize: 16 }}>Roles</p> */}\n\n <Panel toggleable header=\"Roles\" className=\"solid-column-panel mt-5\">\n <div className=\"formgrid grid mt-4\">\n {rolesData?.data?.records && rolesData?.data?.records.map((role: any, i: number) => (\n <div key={role.name} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>\n <Checkbox\n inputId={role.name}\n checked={selectedRoles.includes(role.name)}\n onChange={() => handleCheckboxChange(role.name)}\n />\n <label htmlFor={role.name}> {role.name}</label>\n </div>\n ))}\n </div>\n </Panel>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n );\n};\n\n\nexport default CreateUser;\n"]}
1
+ {"version":3,"file":"CreateUser.js","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { BackButton } from \"../../../components/common/BackButton\";\nimport { CancelButton } from \"../../../components/common/CancelButton\";\nimport { SolidBreadcrumb } from \"../../../components/common/SolidBreadcrumb\";\nimport { SolidFormHeader } from \"../../../components/common/SolidFormHeader\";\nimport { SolidFormStepper } from \"../../../components/common/SolidFormStepper\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useRegisterPrivateMutation, useUpdateUserMutation } from \"../../../redux/api/authApi\";\nimport { useGetrolesQuery } from \"../../../redux/api/roleApi\";\nimport { useDeleteUserMutation } from \"../../../redux/api/userApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Button } from \"primereact/button\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Divider } from \"primereact/divider\";\nimport { InputText } from \"primereact/inputtext\";\nimport { Message } from \"primereact/message\";\nimport { Panel } from \"primereact/panel\";\nimport { Password } from \"primereact/password\";\nimport { classNames } from \"primereact/utils\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport * as Yup from \"yup\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst CreateUser = ({ data, params }: any) => {\n\n const dispatch = useDispatch();\n const pathname = usePathname();\n const router = useRouter();\n const [selectedRoles, setSelectedRoles] = useState<string[]>([]);\n\n const [registerPrivate, { isLoading, error: userCreateError, isSuccess, data: user }] = useRegisterPrivateMutation();\n const [\n updateUser,\n {\n isLoading: isuserUpdating,\n isSuccess: isUpdateuserSuceess,\n isError: isuserUpdateError,\n error: userUpdateError,\n data: updateduser,\n },\n ] = useUpdateUserMutation();\n\n const [deleteUser, {\n isLoading: isUserDeleted,\n isSuccess: isDeleteUserSuceess,\n isError: isUserDeleteError,\n error: UserDeleteError,\n data: DeletedUser,\n },] = useDeleteUserMutation();\n\n const { data: rolesData } = useGetrolesQuery(\"\");\n // const [\n // createrolebulk,\n // { isLoading, isSuccess, isError, error, data: roles },\n // ] = useCreateuserrolebulkMutation();\n\n useEffect(() => {\n if (data && data.roles) {\n const userRoles = data.roles.map((role: any) => role.name);\n setSelectedRoles(userRoles);\n }\n }, [data]);\n\n const handleCheckboxChange = (roleName: string) => {\n let updatedRoles;\n if (selectedRoles.includes(roleName)) {\n updatedRoles = selectedRoles.filter((name) => name !== roleName);\n } else {\n updatedRoles = [...selectedRoles, roleName];\n }\n setSelectedRoles(updatedRoles);\n formik.setFieldTouched('roles', true); // fake \"touched\"\n formik.setFieldValue('roles', updatedRoles);\n };\n\n const initialValues = {\n fullName: data ? data.fullName : \"\",\n username: data ? data.username : \"\",\n email: data ? data.email : \"\",\n mobile: data ? data.mobile : \"\",\n password: \"\",\n confirmPassword: \"\",\n failedLoginAttempts: data ? data.failedLoginAttempts : 0,\n };\n\n const validationSchema = Yup.object({\n fullName: Yup.string().required(),\n username: Yup.string()\n .required('Username is required'), // Must be provided\n // .min(3, 'Username must be at least 3 characters long') // Minimum length\n // .max(20, 'Username cannot be longer than 20 characters') // Maximum length\n // .matches(\n // /^[a-zA-Z0-9_.-]*$/,\n // 'Username can only contain letters, numbers, underscores, periods, and hyphens'\n // ) // Allowed characters\n // .matches(\n // /^[a-zA-Z]/,\n // 'Username must start with a letter'\n // ),\n email: Yup\n .string()\n .email(ERROR_MESSAGES.FIELD_INVALID('email address'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Email')),\n password: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).nullable(),\n confirmPassword: Yup.string()\n .when('password', {\n is: (val: any) => !!val, // only validate if password is filled\n then: (schema) =>\n schema\n .oneOf([Yup.ref('password')], ERROR_MESSAGES.FIELD_MUST_MATCH('Password'))\n .nullable(),\n otherwise: (schema) => schema.notRequired().nullable(),\n }),\n mobile: Yup.number().required(ERROR_MESSAGES.FIELD_REUQIRED('Mobile')),\n failedLoginAttempts: Yup.number()\n .typeError(\"Failed Login Attempts must be a number\")\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n ),\n });\n\n\n const isFormFieldValid = (formik: any, fieldName: string) => {\n return formik.touched[fieldName] && formik.errors[fieldName];\n };\n\n\n const showError = async (submit?: boolean) => {\n const errors = await formik.validateForm();\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.join(', '), life: 3000 }));\n }\n };\n\n function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : errorMessage;\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail }));\n };\n\n // Check and handle errors from each API operation\n if (userCreateError) {\n handleError(userCreateError)\n }\n if (userUpdateError) {\n handleError(userUpdateError)\n }\n\n }, [\n userCreateError, userUpdateError\n ]);\n\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n if (data) {\n const userData: any = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n roles: selectedRoles,\n failedLoginAttempts: values.failedLoginAttempts,\n };\n if (values.password) {\n userData.password = values.password;\n }\n updateUser({ id: data.id, data: userData });\n\n } else {\n const userData = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n password: values.password,\n roles: selectedRoles,\n failedLoginAttempts: values.failedLoginAttempts,\n };\n\n registerPrivate(userData)\n }\n },\n });\n\n useEffect(() => {\n if (isSuccess == true || isDeleteUserSuceess === true || isUpdateuserSuceess === true) {\n router.back();\n }\n }, [isSuccess, isDeleteUserSuceess, isUpdateuserSuceess])\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\" >\n <form onSubmit={formik.handleSubmit}>\n <div className=\"solid-form-header\">\n {params.id === \"new\" ? (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Create User</div>\n </div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n <CancelButton />\n </div>\n </>\n ) : (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Update User</div>\n </div>\n <div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n {data &&\n <Button outlined label=\"Delete\" size=\"small\" severity=\"danger\" type=\"button\" onClick={() => deleteUser(data.id)} />\n }\n <CancelButton />\n </div>\n </div>\n </>\n )}\n </div>\n <SolidFormHeader />\n {/* <div className=\"solid-form-stepper\">\n <SolidFormStepper />\n </div> */}\n <div className=\"px-4 py-3 md:p-4 solid-form-content\">\n <div className=\"grid\">\n <div className=\"col-12 lg:col-10 xl:col-8 mx-auto\">\n {/* <p className=\"form-wrapper-heading text-base\">Basic Info</p> */}\n <Panel header=\"Basic Info\" className=\"solid-column-panel\">\n <div className=\"grid formgrid mt-3\">\n <div className=\"field col-12 md:col-6 flex flex-column gap-2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">\n Full Name\n </label>\n <InputText\n type=\"text\"\n id=\"fullName\"\n name=\"fullName\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.fullName}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.fullName && formik.errors.fullName,\n })}\n />\n {isFormFieldValid(formik, \"fullName\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.fullName?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 mt-3 md:mt-3\">\n <label htmlFor=\"username\" className=\"form-field-label\">\n Username\n </label>\n <InputText\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.username}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.username && formik.errors.username,\n })}\n />\n {isFormFieldValid(formik, \"username\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.username?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"email\" className=\"form-field-label\">\n Email\n </label>\n <InputText\n type=\"text\"\n id=\"email\"\n name=\"email\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.email}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.email && formik.errors.email,\n })}\n />\n {isFormFieldValid(formik, \"email\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.email?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"mobile\" className=\"form-field-label\">\n Mobile\n </label>\n <InputText\n type=\"text\"\n id=\"mobile\"\n name=\"mobile\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.mobile}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.mobile && formik.errors.mobile,\n })}\n />\n {isFormFieldValid(formik, \"mobile \") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.mobile?.toString()}\n />\n )}\n </div>\n {params.id === \"new\" && <>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 py-4\">\n <label htmlFor=\"Password\" className=\"form-field-label\">\n Password\n </label>\n <Password\n id=\"password\"\n name=\"password\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.password}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"password\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"password\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.password?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4\">\n <label htmlFor=\"Confirm Password\" className=\"form-field-label\">\n Confirm Password\n </label>\n <Password\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"confirmPassword\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"confirmPassword\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.confirmPassword?.toString()}\n />\n )}\n </div>\n </>}\n {params.id !== \"new\" && (\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"failedLoginAttempts\" className=\"form-field-label\">\n Failed Login Attempts\n </label>\n <InputText\n type=\"number\"\n id=\"failedLoginAttempts\"\n name=\"failedLoginAttempts\"\n autoComplete=\"off\"\n onChange={formik.handleChange}\n value={formik.values.failedLoginAttempts}\n className={classNames(\"\", {\n \"p-invalid\":\n formik.touched.failedLoginAttempts &&\n formik.errors.failedLoginAttempts,\n })}\n />\n {formik.touched.failedLoginAttempts &&\n formik.errors.failedLoginAttempts && (\n <Message\n severity=\"error\"\n text={formik.errors.failedLoginAttempts?.toString()}\n />\n )}\n <small className=\"text-color-secondary\">\n Your account has been locked due to repeated unsuccessful login attempts. Please contact your system admin.\n </small>\n </div>\n )}\n </div>\n </Panel>\n\n {/* <Divider /> */}\n {/* <p className=\"form-wrapper-heading text-base\" style={{ fontSize: 16 }}>Roles</p> */}\n\n <Panel toggleable header=\"Roles\" className=\"solid-column-panel mt-5\">\n <div className=\"formgrid grid mt-4\">\n {rolesData?.data?.records && rolesData?.data?.records.map((role: any, i: number) => (\n <div key={role.name} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>\n <Checkbox\n inputId={role.name}\n checked={selectedRoles.includes(role.name)}\n onChange={() => handleCheckboxChange(role.name)}\n />\n <label htmlFor={role.name}> {role.name}</label>\n </div>\n ))}\n </div>\n </Panel>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n );\n};\n\n\nexport default CreateUser;\n"]}
@@ -19,10 +19,11 @@ import { InputText } from "primereact/inputtext";
19
19
  import { Message } from "primereact/message";
20
20
  import { Panel } from "primereact/panel";
21
21
  import { Password } from "primereact/password";
22
- import { Toast } from "primereact/toast";
23
22
  import { classNames } from "primereact/utils";
24
- import { useEffect, useRef, useState } from "react";
23
+ import { useEffect, useState } from "react";
24
+ import { useDispatch } from "react-redux";
25
25
  import * as Yup from "yup";
26
+ import { showToast } from "../../../redux/features/toastSlice";
26
27
 
27
28
 
28
29
  interface ErrorResponseData {
@@ -33,7 +34,7 @@ interface ErrorResponseData {
33
34
 
34
35
  const CreateUser = ({ data, params }: any) => {
35
36
 
36
- const toast = useRef<Toast>(null);
37
+ const dispatch = useDispatch();
37
38
  const pathname = usePathname();
38
39
  const router = useRouter();
39
40
  const [selectedRoles, setSelectedRoles] = useState<string[]>([]);
@@ -140,26 +141,8 @@ const CreateUser = ({ data, params }: any) => {
140
141
  const errors = await formik.validateForm();
141
142
  const errorMessages = Object.values(errors);
142
143
 
143
- if (errorMessages.length > 0 && toast.current) {
144
- toast.current.show({
145
- severity: "error",
146
- summary: ERROR_MESSAGES.SEND_REPORT,
147
- // sticky: true,
148
- life: 3000,
149
- //@ts-ignore
150
- content: (props) => (
151
- <div
152
- className="flex flex-column align-items-left"
153
- style={{ flex: "1" }}
154
- >
155
- {errorMessages.map((m: any, index: number) => (
156
- <div className="flex align-items-center gap-2" key={index}>
157
- <span className="font-bold text-900">{m}</span>
158
- </div>
159
- ))}
160
- </div>
161
- ),
162
- });
144
+ if (errorMessages.length > 0) {
145
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.join(', '), life: 3000 }));
163
146
  }
164
147
  };
165
148
 
@@ -177,28 +160,8 @@ const CreateUser = ({ data, params }: any) => {
177
160
  errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];
178
161
  }
179
162
 
180
- toast.current?.show({
181
- severity: 'error',
182
- summary: ERROR_MESSAGES.ERROR,
183
- detail: errorMessage,
184
- sticky: true,
185
- //@ts-ignore
186
- content: (props) => (
187
- <div className="flex flex-column align-items-left" style={{ flex: "1" }}>
188
- {Array.isArray(errorMessage) ? (
189
- errorMessage.map((message, index) => (
190
- <div className="flex align-items-center gap-2" key={index}>
191
- <span className="font-bold text-900">{message.trim()}</span>
192
- </div>
193
- ))
194
- ) : (
195
- <div className="flex align-items-center gap-2">
196
- <span className="font-bold text-900">{errorMessage?.trim()}</span>
197
- </div>
198
- )}
199
- </div>
200
- ),
201
- });
163
+ const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : errorMessage;
164
+ dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail }));
202
165
  };
203
166
 
204
167
  // Check and handle errors from each API operation
@@ -257,7 +220,6 @@ const CreateUser = ({ data, params }: any) => {
257
220
 
258
221
  return (
259
222
  <div className="solid-form-wrapper">
260
- <Toast ref={toast} />
261
223
  <div className="solid-form-section" >
262
224
  <form onSubmit={formik.handleSubmit}>
263
225
  <div className="solid-form-header">
@@ -1 +1 @@
1
- {"version":3,"file":"UserListView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/UserListView.tsx"],"names":[],"mappings":"AAmCA,eAAO,MAAM,YAAY,+CAoVxB,CAAC"}
1
+ {"version":3,"file":"UserListView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/UserListView.tsx"],"names":[],"mappings":"AAoCA,eAAO,MAAM,YAAY,+CAmUxB,CAAC"}
@@ -41,14 +41,15 @@ import { FilterMatchMode } from "primereact/api";
41
41
  import { Button } from "primereact/button";
42
42
  import { Column } from "primereact/column";
43
43
  import { DataTable, } from "primereact/datatable";
44
- import { useEffect, useRef, useState } from "react";
44
+ import { useEffect, useState } from "react";
45
+ import { useDispatch } from "react-redux";
45
46
  import { CreateButton } from "../../../components/common/CreateButton";
46
47
  import { Dialog } from "primereact/dialog";
47
- import { Toast } from "primereact/toast";
48
48
  import qs from "qs";
49
49
  import { ERROR_MESSAGES } from '../../../constants/error-messages';
50
+ import { showToast } from '../../../redux/features/toastSlice';
50
51
  export var UserListView = function () {
51
- var toast = useRef(null);
52
+ var dispatch = useDispatch();
52
53
  var _a = useState([]), users = _a[0], setUsers = _a[1];
53
54
  var _b = useState({
54
55
  fullName: { value: null, matchMode: FilterMatchMode.STARTS_WITH },
@@ -95,25 +96,17 @@ export var UserListView = function () {
95
96
  setSelectedUsers([]);
96
97
  }, [isDeleteUserSuceess]);
97
98
  useEffect(function () {
98
- var _a;
99
99
  if (isError || isUserDeleteError) {
100
100
  setLoading(false);
101
- var errorMessage_1 = ERROR_MESSAGES.ERROR_OCCURED;
101
+ var errorMessage = ERROR_MESSAGES.ERROR_OCCURED;
102
102
  var errorToast = isError ? error : UserDeleteError;
103
103
  if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
104
- errorMessage_1 = "".concat(errorToast.data.message);
104
+ errorMessage = "".concat(errorToast.data.message);
105
105
  }
106
106
  else {
107
- errorMessage_1 = ERROR_MESSAGES.SOMETHING_WRONG;
107
+ errorMessage = ERROR_MESSAGES.SOMETHING_WRONG;
108
108
  }
109
- (_a = toast.current) === null || _a === void 0 ? void 0 : _a.show({
110
- severity: 'error',
111
- summary: ERROR_MESSAGES.ERROR,
112
- detail: errorMessage_1,
113
- life: 3000,
114
- //@ts-ignore
115
- content: function (props) { return (_jsx("div", { className: "flex flex-column align-items-left", style: { flex: "1" }, children: _jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: errorMessage_1 }) }) })); },
116
- });
109
+ dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: errorMessage, life: 3000 }));
117
110
  }
118
111
  }, [isError, isUserDeleteError]);
119
112
  function isFetchBaseQueryErrorWithErrorResponse(error) {
@@ -218,6 +211,6 @@ export var UserListView = function () {
218
211
  setDialogVisible(false);
219
212
  setSelectedUsers([]);
220
213
  };
221
- return (_jsxs("div", { className: "", children: [_jsx(Toast, { ref: toast }), _jsxs("div", { className: "flex gap-3 mb-4", children: [_jsx(CreateButton, {}), selectedUsers.length > 0 && _jsx(Button, { type: "button", label: "Delete", size: "small", onClick: function () { return setDialogVisible(true); }, className: "small-button", severity: "danger" })] }), _jsx("style", { children: "\n .p-datatable .p-datatable-loading-overlay {\n background-color: rgba(0, 0, 0, 0.0);\n }\n " }), _jsxs(DataTable, { value: users, lazy: true, tableStyle: { minWidth: "60rem", margin: "auto" }, size: "small", paginator: true, rows: rows, rowsPerPageOptions: [10, 25, 50], dataKey: "id", filters: filters, emptyMessage: "No users found", onFilter: onFilter, filterDisplay: "row", totalRecords: totalRecords, first: first, onPage: onPageChange, onSort: function (e) { return onSort(e); }, sortField: sortField, sortOrder: sortOrder === 1 || sortOrder === -1 ? sortOrder : 0, loading: loading || isLoading, loadingIcon: "pi pi-spinner", selection: selectedUsers, onSelectionChange: onSelectionChange, selectionMode: "multiple", removableSort: true, children: [_jsx(Column, { selectionMode: "multiple", headerStyle: { width: "3em" } }), _jsx(Column, { field: "id", header: "ID", className: "text-sm", sortable: true, headerClassName: "table-header-fs" }), _jsx(Column, { field: "fullName", header: "Full Name", className: "text-sm", sortable: true, filter: true, filterPlaceholder: "Search user by full name", style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { field: "username", header: "Username", className: "text-sm", sortable: true, filter: true, filterPlaceholder: "Search user by username", style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { field: "email", header: "Email", className: "text-sm", sortable: true, filter: true, filterPlaceholder: "Search user by email", style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { body: detailsBodyTemplate })] }), _jsx(Dialog, { visible: isDialogVisible, header: "Confirm Delete", modal: true, className: "solid-confirm-dialog", footer: function () { return (_jsxs("div", { className: "flex justify-content-center", children: [_jsx(Button, { label: "Yes", icon: "pi pi-check", className: 'small-button', severity: "danger", autoFocus: true, onClick: deleteBulk }), _jsx(Button, { label: "No", icon: "pi pi-times", className: 'small-button', onClick: onDeleteClose })] })); }, onHide: function () { return setDialogVisible(false); }, children: _jsx("p", { children: "Are you sure you want to delete the selected Users?" }) })] }));
214
+ return (_jsxs("div", { className: "", children: [_jsxs("div", { className: "flex gap-3 mb-4", children: [_jsx(CreateButton, {}), selectedUsers.length > 0 && _jsx(Button, { type: "button", label: "Delete", size: "small", onClick: function () { return setDialogVisible(true); }, className: "small-button", severity: "danger" })] }), _jsx("style", { children: "\n .p-datatable .p-datatable-loading-overlay {\n background-color: rgba(0, 0, 0, 0.0);\n }\n " }), _jsxs(DataTable, { value: users, lazy: true, tableStyle: { minWidth: "60rem", margin: "auto" }, size: "small", paginator: true, rows: rows, rowsPerPageOptions: [10, 25, 50], dataKey: "id", filters: filters, emptyMessage: "No users found", onFilter: onFilter, filterDisplay: "row", totalRecords: totalRecords, first: first, onPage: onPageChange, onSort: function (e) { return onSort(e); }, sortField: sortField, sortOrder: sortOrder === 1 || sortOrder === -1 ? sortOrder : 0, loading: loading || isLoading, loadingIcon: "pi pi-spinner", selection: selectedUsers, onSelectionChange: onSelectionChange, selectionMode: "multiple", removableSort: true, children: [_jsx(Column, { selectionMode: "multiple", headerStyle: { width: "3em" } }), _jsx(Column, { field: "id", header: "ID", className: "text-sm", sortable: true, headerClassName: "table-header-fs" }), _jsx(Column, { field: "fullName", header: "Full Name", className: "text-sm", sortable: true, filter: true, filterPlaceholder: "Search user by full name", style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { field: "username", header: "Username", className: "text-sm", sortable: true, filter: true, filterPlaceholder: "Search user by username", style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { field: "email", header: "Email", className: "text-sm", sortable: true, filter: true, filterPlaceholder: "Search user by email", style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { body: detailsBodyTemplate })] }), _jsx(Dialog, { visible: isDialogVisible, header: "Confirm Delete", modal: true, className: "solid-confirm-dialog", footer: function () { return (_jsxs("div", { className: "flex justify-content-center", children: [_jsx(Button, { label: "Yes", icon: "pi pi-check", className: 'small-button', severity: "danger", autoFocus: true, onClick: deleteBulk }), _jsx(Button, { label: "No", icon: "pi pi-times", className: 'small-button', onClick: onDeleteClose })] })); }, onHide: function () { return setDialogVisible(false); }, children: _jsx("p", { children: "Are you sure you want to delete the selected Users?" }) })] }));
222
215
  };
223
216
  //# sourceMappingURL=UserListView.js.map