@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
@@ -40,16 +40,16 @@ import { useBulkUpdateSolidUserSettingsMutation, useGetSolidSettingsQuery } from
40
40
  import { useFormik } from 'formik';
41
41
  import { Button } from 'primereact/button';
42
42
  import { InputSwitch } from 'primereact/inputswitch';
43
- import { Toast } from 'primereact/toast';
44
- import { useEffect, useRef } from 'react';
45
- import showToast from "../../../../helpers/showToast";
43
+ import { useEffect } from 'react';
44
+ import { useDispatch } from 'react-redux';
45
+ import { showToast } from '../../../../redux/features/toastSlice';
46
46
  export var SolidNotifications = function () {
47
47
  var _a, _b;
48
48
  var _c = useGetSolidSettingsQuery(undefined), solidSettingsData = _c.data, isLoading = _c.isLoading, error = _c.error, refetch = _c.refetch;
49
49
  useEffect(function () {
50
50
  refetch();
51
51
  }, []);
52
- var toast = useRef(null);
52
+ var dispatch = useDispatch();
53
53
  var bulkUpdateSolidSettings = useBulkUpdateSolidUserSettingsMutation()[0];
54
54
  var initialValues = {
55
55
  enableNotification: (_b = (_a = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _a === void 0 ? void 0 : _a.enableNotification) !== null && _b !== void 0 ? _b : true
@@ -92,7 +92,7 @@ export var SolidNotifications = function () {
92
92
  }
93
93
  });
94
94
  if (updatedSettingsArray_1.length === 0) {
95
- showToast(toast, "success", ERROR_MESSAGES.NO_CHANGE, ERROR_MESSAGES.NO_SETTING_UPDATE);
95
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.NO_CHANGE, detail: ERROR_MESSAGES.NO_SETTING_UPDATE }));
96
96
  return [2 /*return*/];
97
97
  }
98
98
  // Append settings array to formData
@@ -101,19 +101,19 @@ export var SolidNotifications = function () {
101
101
  case 1:
102
102
  response = _b.sent();
103
103
  if (response.statusCode === 200) {
104
- showToast(toast, "success", ERROR_MESSAGES.UPDATED, ERROR_MESSAGES.SETTING_UPDATED);
104
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.UPDATED, detail: ERROR_MESSAGES.SETTING_UPDATED }));
105
105
  }
106
106
  return [3 /*break*/, 3];
107
107
  case 2:
108
108
  error_1 = _b.sent();
109
- showToast(toast, "error", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.SOMETHING_WRONG);
109
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.SOMETHING_WRONG }));
110
110
  return [3 /*break*/, 3];
111
111
  case 3: return [2 /*return*/];
112
112
  }
113
113
  });
114
114
  }); },
115
115
  });
116
- return (_jsxs("form", { onSubmit: formik.handleSubmit, className: "h-full flex flex-column justify-content-between", children: [_jsx(Toast, { ref: toast }), _jsx("div", { children: _jsxs("div", { className: "flex align-items-start justify-content-between pb-3", children: [_jsxs("div", { children: [_jsx("label", { className: "form-field-label mb-2", children: "Enable Notification" }), _jsx("div", { style: { color: 'var(--solid-grey-500)' }, children: "Decide whether you want to be notified of new messages or updates." })] }), _jsx("div", { children: _jsx(InputSwitch, { name: "enableNotification", checked: formik.values.enableNotification, onChange: function (e) {
116
+ return (_jsxs("form", { onSubmit: formik.handleSubmit, className: "h-full flex flex-column justify-content-between", children: [_jsx("div", { children: _jsxs("div", { className: "flex align-items-start justify-content-between pb-3", children: [_jsxs("div", { children: [_jsx("label", { className: "form-field-label mb-2", children: "Enable Notification" }), _jsx("div", { style: { color: 'var(--solid-grey-500)' }, children: "Decide whether you want to be notified of new messages or updates." })] }), _jsx("div", { children: _jsx(InputSwitch, { name: "enableNotification", checked: formik.values.enableNotification, onChange: function (e) {
117
117
  formik.setFieldValue("enableNotification", e.value);
118
118
  // formik.submitForm();
119
119
  } }) })] }) }), _jsx("div", { children: _jsx(Button, { type: 'submit', size: 'small', label: "Save", disabled: formik.isSubmitting, loading: formik.isSubmitting }) })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"SolidNotifications.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidNotifications.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport { useBulkUpdateSolidUserSettingsMutation, useGetSolidSettingsQuery } from '../../../../redux/api/solidSettingsApi';\nimport { useFormik } from 'formik';\nimport { Button } from 'primereact/button';\nimport { InputSwitch } from 'primereact/inputswitch';\nimport { Toast } from 'primereact/toast';\nimport React, { useEffect, useRef } from 'react'\nimport { useSelector } from 'react-redux';\nimport showToast from \"../../../../helpers/showToast\";\nexport const SolidNotifications = () => {\n const {\n data: solidSettingsData,\n isLoading,\n error,\n refetch,\n } = useGetSolidSettingsQuery(undefined);\n\n useEffect(() => {\n refetch();\n }, []);\n\n const toast = useRef<Toast>(null);\n const [bulkUpdateSolidSettings] = useBulkUpdateSolidUserSettingsMutation();\n\n const initialValues = {\n enableNotification: solidSettingsData?.data?.enableNotification ?? true\n }\n\n const formik = useFormik({\n initialValues: initialValues,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n const updatedSettingsArray: Array<{ key: string; value: string; type: string }> = [];\n const currentSettings = solidSettingsData?.data?.user || {};\n\n const formData = new FormData();\n\n // Compare changed fields\n Object.entries(values).forEach(([key, value]) => {\n const currentValue = currentSettings[key];\n\n const normalizedCurrent = currentValue ?? \"\";\n const normalizedValue = value ?? \"\";\n\n if (normalizedCurrent !== normalizedValue) {\n if (value instanceof File) {\n formData.append(key, value);\n updatedSettingsArray.push({\n key,\n value: \"\",\n type: \"user\",\n });\n } else {\n updatedSettingsArray.push({\n key,\n value: value,\n type: \"user\",\n });\n }\n }\n });\n\n if (updatedSettingsArray.length === 0) {\n showToast(toast, \"success\", ERROR_MESSAGES.NO_CHANGE, ERROR_MESSAGES.NO_SETTING_UPDATE);\n return;\n }\n\n // Append settings array to formData\n formData.append(\"settings\", JSON.stringify(updatedSettingsArray));\n\n // Call API\n const response = await bulkUpdateSolidSettings({ data: formData }).unwrap();\n\n if (response.statusCode === 200) {\n showToast(toast, \"success\", ERROR_MESSAGES.UPDATED, ERROR_MESSAGES.SETTING_UPDATED);\n }\n\n } catch (error) {\n showToast(toast, \"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.SOMETHING_WRONG);\n }\n },\n })\n\n\n return (\n <form onSubmit={formik.handleSubmit} className=\"h-full flex flex-column justify-content-between\">\n <Toast ref={toast} />\n <div>\n <div className=\"flex align-items-start justify-content-between pb-3\">\n <div>\n <label className=\"form-field-label mb-2\">Enable Notification</label>\n <div style={{ color: 'var(--solid-grey-500)' }}>Decide whether you want to be notified of new messages or updates.</div>\n </div>\n <div>\n <InputSwitch\n name=\"enableNotification\"\n checked={formik.values.enableNotification}\n onChange={(e) => {\n formik.setFieldValue(\"enableNotification\", e.value);\n // formik.submitForm();\n }}\n />\n </div>\n </div>\n {/* <div className=\"flex align-items-start justify-content-between pb-3 mt-3\" style={{ borderBottom: '1px dashed var(--primary-light-color)' }}>\n <div>\n <label className=\"form-field-label mb-2\">Enable Notification</label>\n <div style={{ color: 'var(--solid-grey-500)' }}>Decide whether you want to be notified of new messages or updates.</div>\n </div>\n <div>\n <InputSwitch\n name=\"enableNotification\"\n checked={formik.values.enableNotification}\n onChange={(e) => {\n formik.setFieldValue(\"enableNotification\", e.value);\n formik.submitForm();\n }}\n />\n </div>\n </div> */}\n </div>\n <div>\n <Button type='submit' size='small' label=\"Save\" disabled={formik.isSubmitting} loading={formik.isSubmitting} />\n </div>\n </form>\n )\n}"]}
1
+ {"version":3,"file":"SolidNotifications.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidNotifications.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport { useBulkUpdateSolidUserSettingsMutation, useGetSolidSettingsQuery } from '../../../../redux/api/solidSettingsApi';\nimport { useFormik } from 'formik';\nimport { Button } from 'primereact/button';\nimport { InputSwitch } from 'primereact/inputswitch';\nimport React, { useEffect } from 'react'\nimport { useDispatch, useSelector } from 'react-redux';\nimport { showToast } from '../../../../redux/features/toastSlice';\nexport const SolidNotifications = () => {\n const {\n data: solidSettingsData,\n isLoading,\n error,\n refetch,\n } = useGetSolidSettingsQuery(undefined);\n\n useEffect(() => {\n refetch();\n }, []);\n\n const dispatch = useDispatch();\n const [bulkUpdateSolidSettings] = useBulkUpdateSolidUserSettingsMutation();\n\n const initialValues = {\n enableNotification: solidSettingsData?.data?.enableNotification ?? true\n }\n\n const formik = useFormik({\n initialValues: initialValues,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n const updatedSettingsArray: Array<{ key: string; value: string; type: string }> = [];\n const currentSettings = solidSettingsData?.data?.user || {};\n\n const formData = new FormData();\n\n // Compare changed fields\n Object.entries(values).forEach(([key, value]) => {\n const currentValue = currentSettings[key];\n\n const normalizedCurrent = currentValue ?? \"\";\n const normalizedValue = value ?? \"\";\n\n if (normalizedCurrent !== normalizedValue) {\n if (value instanceof File) {\n formData.append(key, value);\n updatedSettingsArray.push({\n key,\n value: \"\",\n type: \"user\",\n });\n } else {\n updatedSettingsArray.push({\n key,\n value: value,\n type: \"user\",\n });\n }\n }\n });\n\n if (updatedSettingsArray.length === 0) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.NO_CHANGE, detail: ERROR_MESSAGES.NO_SETTING_UPDATE }));\n return;\n }\n\n // Append settings array to formData\n formData.append(\"settings\", JSON.stringify(updatedSettingsArray));\n\n // Call API\n const response = await bulkUpdateSolidSettings({ data: formData }).unwrap();\n\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.UPDATED, detail: ERROR_MESSAGES.SETTING_UPDATED }));\n }\n\n } catch (error) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.SOMETHING_WRONG }));\n }\n },\n })\n\n\n return (\n <form onSubmit={formik.handleSubmit} className=\"h-full flex flex-column justify-content-between\">\n <div>\n <div className=\"flex align-items-start justify-content-between pb-3\">\n <div>\n <label className=\"form-field-label mb-2\">Enable Notification</label>\n <div style={{ color: 'var(--solid-grey-500)' }}>Decide whether you want to be notified of new messages or updates.</div>\n </div>\n <div>\n <InputSwitch\n name=\"enableNotification\"\n checked={formik.values.enableNotification}\n onChange={(e) => {\n formik.setFieldValue(\"enableNotification\", e.value);\n // formik.submitForm();\n }}\n />\n </div>\n </div>\n {/* <div className=\"flex align-items-start justify-content-between pb-3 mt-3\" style={{ borderBottom: '1px dashed var(--primary-light-color)' }}>\n <div>\n <label className=\"form-field-label mb-2\">Enable Notification</label>\n <div style={{ color: 'var(--solid-grey-500)' }}>Decide whether you want to be notified of new messages or updates.</div>\n </div>\n <div>\n <InputSwitch\n name=\"enableNotification\"\n checked={formik.values.enableNotification}\n onChange={(e) => {\n formik.setFieldValue(\"enableNotification\", e.value);\n formik.submitForm();\n }}\n />\n </div>\n </div> */}\n </div>\n <div>\n <Button type='submit' size='small' label=\"Save\" disabled={formik.isSubmitting} loading={formik.isSubmitting} />\n </div>\n </form>\n )\n}"]}
@@ -4,10 +4,9 @@ import { useBulkUpdateSolidUserSettingsMutation, useGetSolidSettingsQuery } from
4
4
  import { useFormik } from 'formik';
5
5
  import { Button } from 'primereact/button';
6
6
  import { InputSwitch } from 'primereact/inputswitch';
7
- import { Toast } from 'primereact/toast';
8
- import React, { useEffect, useRef } from 'react'
9
- import { useSelector } from 'react-redux';
10
- import showToast from "../../../../helpers/showToast";
7
+ import React, { useEffect } from 'react'
8
+ import { useDispatch, useSelector } from 'react-redux';
9
+ import { showToast } from '../../../../redux/features/toastSlice';
11
10
  export const SolidNotifications = () => {
12
11
  const {
13
12
  data: solidSettingsData,
@@ -20,7 +19,7 @@ export const SolidNotifications = () => {
20
19
  refetch();
21
20
  }, []);
22
21
 
23
- const toast = useRef<Toast>(null);
22
+ const dispatch = useDispatch();
24
23
  const [bulkUpdateSolidSettings] = useBulkUpdateSolidUserSettingsMutation();
25
24
 
26
25
  const initialValues = {
@@ -63,7 +62,7 @@ export const SolidNotifications = () => {
63
62
  });
64
63
 
65
64
  if (updatedSettingsArray.length === 0) {
66
- showToast(toast, "success", ERROR_MESSAGES.NO_CHANGE, ERROR_MESSAGES.NO_SETTING_UPDATE);
65
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.NO_CHANGE, detail: ERROR_MESSAGES.NO_SETTING_UPDATE }));
67
66
  return;
68
67
  }
69
68
 
@@ -74,11 +73,11 @@ export const SolidNotifications = () => {
74
73
  const response = await bulkUpdateSolidSettings({ data: formData }).unwrap();
75
74
 
76
75
  if (response.statusCode === 200) {
77
- showToast(toast, "success", ERROR_MESSAGES.UPDATED, ERROR_MESSAGES.SETTING_UPDATED);
76
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.UPDATED, detail: ERROR_MESSAGES.SETTING_UPDATED }));
78
77
  }
79
78
 
80
79
  } catch (error) {
81
- showToast(toast, "error", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.SOMETHING_WRONG);
80
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.SOMETHING_WRONG }));
82
81
  }
83
82
  },
84
83
  })
@@ -86,7 +85,6 @@ export const SolidNotifications = () => {
86
85
 
87
86
  return (
88
87
  <form onSubmit={formik.handleSubmit} className="h-full flex flex-column justify-content-between">
89
- <Toast ref={toast} />
90
88
  <div>
91
89
  <div className="flex align-items-start justify-content-between pb-3">
92
90
  <div>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidPersonalInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx"],"names":[],"mappings":"AAiBA,eAAO,MAAM,iBAAiB,+CA8R7B,CAAA"}
1
+ {"version":3,"file":"SolidPersonalInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx"],"names":[],"mappings":"AAiBA,eAAO,MAAM,iBAAiB,+CA6R7B,CAAA"}
@@ -43,16 +43,16 @@ import { Avatar } from "primereact/avatar";
43
43
  import { Button } from "primereact/button";
44
44
  import { Dialog } from "primereact/dialog";
45
45
  import { InputText } from "primereact/inputtext";
46
- import { Toast } from "primereact/toast";
47
46
  import { useRef, useState } from "react";
47
+ import { useDispatch } from 'react-redux';
48
+ import { showToast } from '../../../../redux/features/toastSlice';
48
49
  import styles from './SolidAccountSettings.module.css';
49
50
  import { ERROR_MESSAGES } from "../../../../constants/error-messages";
50
- import showToast from "../../../../helpers/showToast";
51
51
  import { useSession } from '../../../../hooks/useSession';
52
52
  export var SolidPersonalInfo = function () {
53
53
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
54
54
  var fileInputRef = useRef(null);
55
- var toast = useRef(null);
55
+ var dispatch = useDispatch();
56
56
  var _x = useState(null), previewImage = _x[0], setPreviewImage = _x[1];
57
57
  var _y = useState(false), deleteDialogVisible = _y[0], setDeleteDialogVisible = _y[1];
58
58
  var _z = useState(false), replaceDialogVisible = _z[0], setReplaceDialogVisible = _z[1];
@@ -84,25 +84,25 @@ export var SolidPersonalInfo = function () {
84
84
  formData.append("profilePicture", values.profilePicture);
85
85
  }
86
86
  if (!formData.has("fullName") && !formData.has("profilePicture")) {
87
- showToast(toast, "info", ERROR_MESSAGES.NO_CHANGE, ERROR_MESSAGES.NO_UPDATE_MADE);
87
+ dispatch(showToast({ severity: "info", summary: ERROR_MESSAGES.NO_CHANGE, detail: ERROR_MESSAGES.NO_UPDATE_MADE }));
88
88
  return [2 /*return*/];
89
89
  }
90
90
  return [4 /*yield*/, updateUser({ data: formData }).unwrap()];
91
91
  case 1:
92
92
  response = _a.sent();
93
93
  if ((response === null || response === void 0 ? void 0 : response.statusCode) === 200) {
94
- showToast(toast, "success", ERROR_MESSAGES.PROFILE_SAVED, ERROR_MESSAGES.PROFILE_SAVED_SUCCESSFULLY);
94
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.PROFILE_SAVED, detail: ERROR_MESSAGES.PROFILE_SAVED_SUCCESSFULLY }));
95
95
  refetch();
96
96
  formik.resetForm();
97
97
  setPreviewImage(null);
98
98
  }
99
99
  else {
100
- showToast(toast, "error", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_UPDATED_PROFILE);
100
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_UPDATED_PROFILE }));
101
101
  }
102
102
  return [3 /*break*/, 3];
103
103
  case 2:
104
104
  error_1 = _a.sent();
105
- showToast(toast, "error", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.SOMETHING_WRONG);
105
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.SOMETHING_WRONG }));
106
106
  return [3 /*break*/, 3];
107
107
  case 3: return [2 /*return*/];
108
108
  }
@@ -175,7 +175,7 @@ export var SolidPersonalInfo = function () {
175
175
  return [3 /*break*/, 5];
176
176
  case 4:
177
177
  error_2 = _d.sent();
178
- showToast(toast, "error", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_DELETED_IMAGE);
178
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_DELETED_IMAGE }));
179
179
  return [3 /*break*/, 5];
180
180
  case 5:
181
181
  setReplaceDialogVisible(false);
@@ -198,12 +198,12 @@ export var SolidPersonalInfo = function () {
198
198
  return [4 /*yield*/, deleteMedia(existing.id).unwrap()];
199
199
  case 2:
200
200
  _e.sent();
201
- showToast(toast, "success", ERROR_MESSAGES.DELETED, ERROR_MESSAGES.PROFILE_PICTURE_REMOVE);
201
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.DELETED, detail: ERROR_MESSAGES.PROFILE_PICTURE_REMOVE }));
202
202
  refetch();
203
203
  return [3 /*break*/, 4];
204
204
  case 3:
205
205
  _a = _e.sent();
206
- showToast(toast, "error", ERROR_MESSAGES.ERROR, ERROR_MESSAGES.FAILED_DELETED_IMAGE);
206
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.FAILED_DELETED_IMAGE }));
207
207
  return [3 /*break*/, 4];
208
208
  case 4:
209
209
  formik.setFieldValue("profilePicture", null);
@@ -213,7 +213,7 @@ export var SolidPersonalInfo = function () {
213
213
  }
214
214
  });
215
215
  }); };
216
- return (_jsxs("form", { onSubmit: formik.handleSubmit, className: "h-full flex flex-column justify-content-between", children: [_jsx(Toast, { ref: toast }), _jsxs("div", { children: [_jsxs("div", { children: [_jsx("label", { className: "form-field-label mb-2 font-bold", children: "Profile Picture" }), _jsxs("div", { className: "flex align-items-center gap-3", children: [previewImage ? (_jsx(Avatar, { image: previewImage, shape: "circle", style: {
216
+ return (_jsxs("form", { onSubmit: formik.handleSubmit, className: "h-full flex flex-column justify-content-between", children: [_jsxs("div", { children: [_jsxs("div", { children: [_jsx("label", { className: "form-field-label mb-2 font-bold", children: "Profile Picture" }), _jsxs("div", { className: "flex align-items-center gap-3", children: [previewImage ? (_jsx(Avatar, { image: previewImage, shape: "circle", style: {
217
217
  height: '5rem',
218
218
  width: '5rem'
219
219
  } })) : ((_l = (_k = (_j = (_h = userData === null || userData === void 0 ? void 0 : userData.data) === null || _h === void 0 ? void 0 : _h._media) === null || _j === void 0 ? void 0 : _j.profilePicture) === null || _k === void 0 ? void 0 : _k[0]) === null || _l === void 0 ? void 0 : _l._full_url) ? (_jsxs("div", { className: "relative", children: [_jsx(Avatar, { image: (_q = (_p = (_o = (_m = userData === null || userData === void 0 ? void 0 : userData.data) === null || _m === void 0 ? void 0 : _m._media) === null || _o === void 0 ? void 0 : _o.profilePicture) === null || _p === void 0 ? void 0 : _p[0]) === null || _q === void 0 ? void 0 : _q._full_url, shape: "circle", style: {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidPersonalInfo.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,MAAM,MAAM,mCAAmC,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,SAAS,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAEzD,MAAM,CAAC,IAAM,iBAAiB,GAAG;;IAC7B,IAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACpD,IAAM,KAAK,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAC;IAE5B,IAAA,KAAkC,QAAQ,CAAgB,IAAI,CAAC,EAA9D,YAAY,QAAA,EAAE,eAAe,QAAiC,CAAC;IAChE,IAAA,KAAgD,QAAQ,CAAC,KAAK,CAAC,EAA9D,mBAAmB,QAAA,EAAE,sBAAsB,QAAmB,CAAC;IAChE,IAAA,KAAkD,QAAQ,CAAC,KAAK,CAAC,EAAhE,oBAAoB,QAAA,EAAE,uBAAuB,QAAmB,CAAC;IAClE,IAAA,KAAgC,QAAQ,CAAc,IAAI,CAAC,EAA1D,WAAW,QAAA,EAAE,cAAc,QAA+B,CAAC;IAE5D,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAC3B,IAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC;IAElB,IAAA,KAA8B,eAAe,CAAC,MAAM,CAAC,EAA7C,QAAQ,UAAA,EAAE,OAAO,aAA4B,CAAC;IAGxD,IAAA,WAAW,GACX,sBAAsB,EAAE,GADb,CACc;IACtB,IAAA,UAAU,GAAI,4BAA4B,EAAE,GAAlC,CAAmC;IAEpD,IAAM,aAAa,GAAG;QAClB,QAAQ,EAAE,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,QAAQ,mCAAI,EAAE;QACxC,cAAc,EAAE,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,CAAC,CAAC,CAAC,0CAAE,SAAS,mCAAI,IAAI;KAC/E,CAAC;IAEF,IAAM,MAAM,GAAG,SAAS,CAAC;QACrB,aAAa,eAAA;QACb,kBAAkB,EAAE,IAAI;QACxB,QAAQ,EAAE,UAAO,MAAM;;;;;;wBAET,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAChC,IAAI,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ,EAAE;4BAC5C,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;yBAChD;wBAED,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,YAAY,IAAI,EAAE;4BAChE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;yBAC5D;wBAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;4BAC9D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;4BAClF,sBAAO;yBACV;wBAEgB,qBAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;wBAAxD,QAAQ,GAAG,SAA6C;wBAC9D,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,MAAK,GAAG,EAAE;4BAC9B,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,0BAA0B,CAAC,CAAC;4BACrG,OAAO,EAAE,CAAC;4BACV,MAAM,CAAC,SAAS,EAAE,CAAC;4BACnB,eAAe,CAAC,IAAI,CAAC,CAAC;yBACzB;6BAAM;4BACH,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;yBAC3F;;;;wBAED,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;;;;;aAExF;KACJ,CAAC,CAAC;IAEH,IAAM,WAAW,GAAG,UAAC,KAAa;;QAC9B,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,IAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,OAAO,CAAA,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,WAAW,EAAE,KAAI,EAAE,CAAC;IACzC,CAAC,CAAC;IAEF,IAAM,oBAAoB,GAAG,UAAC,QAAgB;QAC1C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;SACxD;QACD,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACjC,OAAO,cAAO,GAAG,gBAAa,CAAC;IACnC,CAAC,CAAC;IACF,IAAM,KAAK,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,KAAK,CAAC;IACpC,IAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,IAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAM,gBAAgB,GAAG,UAAC,IAAU;;QAChC,IAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,QAAQ,EAAE;YACV,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;SACjC;aAAM;YACH,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC7C,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;SAC9C;IACL,CAAC,CAAC;IAGF,IAAM,kBAAkB,GAAG;;QACvB,IAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,QAAQ,EAAE;YACV,sBAAsB,CAAC,IAAI,CAAC,CAAC;SAChC;aAAM;YACH,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC7C,eAAe,CAAC,IAAI,CAAC,CAAC;SACzB;IACL,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;;;;;;oBACb,QAAQ,GAAG,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,CAAC;;;;yBAErD,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAA,EAAZ,wBAAY;oBACZ,qBAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAvC,SAAuC,CAAC;;;oBAG5C,IAAI,WAAW,EAAE;wBACb,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;wBACpD,UAAU,CAAC;4BACP,MAAM,CAAC,UAAU,EAAE,CAAC;wBACxB,CAAC,EAAE,CAAC,CAAC,CAAC;qBACT;;;;oBAGD,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;;;oBAG1F,uBAAuB,CAAC,KAAK,CAAC,CAAC;oBAC/B,cAAc,CAAC,IAAI,CAAC,CAAC;;;;SACxB,CAAC;IAEF,IAAM,aAAa,GAAG;;;;;;oBACZ,QAAQ,GAAG,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,CAAC;yBACzD,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAA,EAAZ,wBAAY;;;;oBAER,qBAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAvC,SAAuC,CAAC;oBACxC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;oBAC3F,OAAO,EAAE,CAAC;;;;oBAEV,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;;;oBAI7F,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;oBAC7C,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,sBAAsB,CAAC,KAAK,CAAC,CAAC;;;;SACjC,CAAC;IAEF,OAAO,CACH,gBAAM,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS,EAAC,iDAAiD,aAC5F,KAAC,KAAK,IAAC,GAAG,EAAE,KAAK,GAAI,EACrB,0BACI,0BACI,gBAAO,SAAS,EAAC,iCAAiC,gCAAwB,EAC1E,eAAK,SAAS,EAAC,+BAA+B,aACzC,YAAY,CAAC,CAAC,CAAC,CACZ,KAAC,MAAM,IAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAC,QAAQ,EACvC,KAAK,EAAE;4CACH,MAAM,EAAE,MAAM;4CACd,KAAK,EAAE,MAAM;yCAChB,GACH,CACL,CAAC,CAAC,CAAC,CAAA,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,0CAAE,SAAS,EAAC,CAAC,CAAC,CACzD,eAAK,SAAS,EAAC,UAAU,aACrB,KAAC,MAAM,IACH,KAAK,EAAE,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,0CAAE,SAAS,EAC7D,KAAK,EAAC,QAAQ,EACd,KAAK,EAAE;oDACH,MAAM,EAAE,MAAM;oDACd,KAAK,EAAE,MAAM;iDAChB,GACH,EACF,cAAK,SAAS,EAAE,MAAM,CAAC,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,YAClE,eAAM,SAAS,EAAC,aAAa,GAAG,GAC9B,IACJ,CACT,CAAC,CAAC,CAAC,CACA,KAAC,MAAM,IACH,KAAK,EAAE,QAAQ,EACf,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,QAAQ,EACd,KAAK,EAAE;4CACH,eAAe,EAAE,OAAO;4CACxB,KAAK,EAAE,SAAS;4CAChB,MAAM,EAAE,MAAM;4CACd,KAAK,EAAE,MAAM;yCAChB,GACH,CACL,EAED,eAAK,SAAS,EAAC,YAAY,aACvB,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAC,WAAW,EACpB,KAAK,EAAC,eAAe,EACrB,QAAQ,QACR,SAAS,EAAC,cAAc,EACxB,OAAO,EAAE,sBAAM,OAAA,MAAA,YAAY,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,EAAA,GAC9C,EACF,gBACI,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,sBAAsB,EAC7B,MAAM,QACN,QAAQ,EAAE,UAAC,CAAC;;oDACR,IAAM,IAAI,GAAG,MAAA,CAAC,CAAC,MAAM,CAAC,KAAK,0CAAG,CAAC,CAAC,CAAC;oDACjC,IAAI,IAAI;wDAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;gDACrC,CAAC,GACH,IACA,IACJ,IACJ,EACN,cAAK,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAQ,EACxF,eAAK,SAAS,EAAC,MAAM,aACjB,gBAAO,SAAS,EAAC,iCAAiC,wBAAgB,EAClE,eAAK,SAAS,EAAC,MAAM,aACjB,eAAK,SAAS,EAAC,0BAA0B,aACrC,gBAAO,SAAS,EAAC,uBAAuB,qBAAa,EACrD,KAAC,SAAS,IACN,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAC7B,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,SAAS,EAAC,QAAQ,GACpB,IACA,EACN,eAAK,SAAS,EAAC,0BAA0B,aACrC,gBAAO,SAAS,EAAC,uBAAuB,sBAAc,EACtD,KAAC,SAAS,IAAC,QAAQ,QAAC,WAAW,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,KAAK,EAAE,KAAK,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,KAAK,EAChF,SAAS,EAAC,QAAQ,GAAG,IACvB,EACN,eAAK,SAAS,EAAC,0BAA0B,aACrC,gBAAO,SAAS,EAAC,uBAAuB,+BAAuB,EAC/D,KAAC,SAAS,IAAC,QAAQ,QAAC,WAAW,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,EAAE,KAAK,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,EAClF,SAAS,EAAC,QAAQ,GAAG,IACvB,EACN,eAAK,SAAS,EAAC,0BAA0B,aACrC,gBAAO,SAAS,EAAC,uBAAuB,qBAAa,EACrD,KAAC,YAAY,IACT,QAAQ,QACR,QAAQ,QACR,KAAK,EAAE,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,KAAK,0CAAE,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC,KAAI,EAAE,GACnE,IAEA,IACJ,IACJ,IACJ,EACN,wBACI,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,MAAM,GACd,GACA,EACN,KAAC,MAAM,IACH,MAAM,EAAE,aAAI,SAAS,EAAC,eAAe,wCAA6B,EAClE,OAAO,EAAE,oBAAoB,EAC7B,eAAe,EAAC,mCAAmC,EACnD,gBAAgB,EAAC,KAAK,EACtB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,SAAS,EAAC,uBAAuB,EACjC,KAAK,QACL,MAAM,EAAE,cAAM,OAAA,uBAAuB,CAAC,KAAK,CAAC,EAA9B,CAA8B,YAE5C,eAAK,SAAS,EAAC,KAAK,qEAEhB,eAAK,SAAS,EAAC,uCAAuC,aAClD,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAc,GAAI,EAClF,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,QAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAM,OAAA,uBAAuB,CAAC,KAAK,CAAC,EAA9B,CAA8B,GAAI,IAC5F,IACJ,GACD,EAET,KAAC,MAAM,IACH,MAAM,EAAE,aAAI,SAAS,EAAC,eAAe,uCAA4B,EACjE,OAAO,EAAE,mBAAmB,EAC5B,eAAe,EAAC,mCAAmC,EACnD,gBAAgB,EAAC,KAAK,EACtB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,KAAK,QACL,SAAS,EAAC,uBAAuB,EACjC,MAAM,EAAE,cAAM,OAAA,sBAAsB,CAAC,KAAK,CAAC,EAA7B,CAA6B,YAE3C,eAAK,SAAS,EAAC,KAAK,4DAEhB,eAAK,SAAS,EAAC,uCAAuC,aAClD,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAE,aAAa,GAAI,EACjF,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,QAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAM,OAAA,sBAAsB,CAAC,KAAK,CAAC,EAA7B,CAA6B,GAAI,IAC3F,IACJ,GACD,IAEN,CACV,CAAA;AACL,CAAC,CAAA","sourcesContent":["\n\nimport { useDeleteMediaMutation } from \"../../../../redux/api/mediaApi\";\nimport { useGetUserQuery, useUpdateUserProfileMutation } from \"../../../../redux/api/userApi\";\nimport { useFormik } from \"formik\";\nimport { AutoComplete } from \"primereact/autocomplete\";\nimport { Avatar } from \"primereact/avatar\";\nimport { Button } from \"primereact/button\";\nimport { Dialog } from \"primereact/dialog\";\nimport { InputText } from \"primereact/inputtext\";\nimport { Toast } from \"primereact/toast\";\nimport { useRef, useState } from \"react\";\nimport styles from './SolidAccountSettings.module.css'\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport showToast from \"../../../../helpers/showToast\";\nimport { useSession } from '../../../../hooks/useSession'\n\nexport const SolidPersonalInfo = () => {\n const fileInputRef = useRef<HTMLInputElement>(null);\n const toast = useRef<Toast>(null);\n\n const [previewImage, setPreviewImage] = useState<string | null>(null);\n const [deleteDialogVisible, setDeleteDialogVisible] = useState(false);\n const [replaceDialogVisible, setReplaceDialogVisible] = useState(false);\n const [pendingFile, setPendingFile] = useState<File | null>(null);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n const userId = user?.id;\n\n const { data: userData, refetch } = useGetUserQuery(userId);\n\n const [\n deleteMedia,\n ] = useDeleteMediaMutation();\n const [updateUser] = useUpdateUserProfileMutation();\n\n const initialValues = {\n fullName: userData?.data?.fullName ?? \"\",\n profilePicture: userData?.data?._media?.profilePicture[0]?._full_url ?? null,\n };\n\n const formik = useFormik({\n initialValues,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n const formData = new FormData();\n if (values.fullName !== initialValues.fullName) {\n formData.append(\"fullName\", values.fullName);\n }\n\n if (values.profilePicture && values.profilePicture instanceof File) {\n formData.append(\"profilePicture\", values.profilePicture);\n }\n\n if (!formData.has(\"fullName\") && !formData.has(\"profilePicture\")) {\n showToast(toast, \"info\", ERROR_MESSAGES.NO_CHANGE, ERROR_MESSAGES.NO_UPDATE_MADE);\n return;\n }\n\n const response = await updateUser({ data: formData }).unwrap();\n if (response?.statusCode === 200) {\n showToast(toast, \"success\", ERROR_MESSAGES.PROFILE_SAVED, ERROR_MESSAGES.PROFILE_SAVED_SUCCESSFULLY);\n refetch();\n formik.resetForm();\n setPreviewImage(null);\n } else {\n showToast(toast, \"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_UPDATED_PROFILE);\n }\n } catch (error) {\n showToast(toast, \"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.SOMETHING_WRONG);\n }\n },\n });\n\n const getInitials = (value: string) => {\n if (!value) return \"\";\n\n const email = value.includes('@') ? value.split('@')[0] : value;\n return email[0]?.toUpperCase() || \"\";\n };\n\n const getColorFromInitials = (initials: string) => {\n let hash = 0;\n for (let i = 0; i < initials.length; i++) {\n hash = initials.charCodeAt(i) + ((hash << 5) - hash);\n }\n const hue = Math.abs(hash) % 360;\n return `hsl(${hue}, 60%, 60%)`;\n };\n const value = userData?.data?.email;\n const initials = getInitials(value);\n const bgColor = getColorFromInitials(initials);\n\n const handleFileChange = (file: File) => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n if (existing) {\n setPendingFile(file);\n setReplaceDialogVisible(true);\n } else {\n formik.setFieldValue(\"profilePicture\", file);\n setPreviewImage(URL.createObjectURL(file));\n }\n };\n\n\n const handleDeleteAvatar = () => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n if (existing) {\n setDeleteDialogVisible(true);\n } else {\n formik.setFieldValue(\"profilePicture\", null);\n setPreviewImage(null);\n }\n };\n\n const confirmReplace = async () => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n try {\n if (existing?.id) {\n await deleteMedia(existing.id).unwrap();\n }\n\n if (pendingFile) {\n formik.setFieldValue(\"profilePicture\", pendingFile);\n setTimeout(() => {\n formik.submitForm();\n }, 0);\n }\n\n } catch (error) {\n showToast(toast, \"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_DELETED_IMAGE);\n }\n\n setReplaceDialogVisible(false);\n setPendingFile(null);\n };\n\n const confirmDelete = async () => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n if (existing?.id) {\n try {\n await deleteMedia(existing.id).unwrap();\n showToast(toast, \"success\", ERROR_MESSAGES.DELETED, ERROR_MESSAGES.PROFILE_PICTURE_REMOVE);\n refetch();\n } catch {\n showToast(toast, \"error\", ERROR_MESSAGES.ERROR, ERROR_MESSAGES.FAILED_DELETED_IMAGE);\n }\n }\n\n formik.setFieldValue(\"profilePicture\", null);\n setPreviewImage(null);\n setDeleteDialogVisible(false);\n };\n\n return (\n <form onSubmit={formik.handleSubmit} className=\"h-full flex flex-column justify-content-between\">\n <Toast ref={toast} />\n <div>\n <div>\n <label className=\"form-field-label mb-2 font-bold\">Profile Picture</label>\n <div className=\"flex align-items-center gap-3\">\n {previewImage ? (\n <Avatar image={previewImage} shape=\"circle\"\n style={{\n height: '5rem',\n width: '5rem'\n }}\n />\n ) : userData?.data?._media?.profilePicture?.[0]?._full_url ? (\n <div className=\"relative\">\n <Avatar\n image={userData?.data?._media?.profilePicture?.[0]?._full_url}\n shape=\"circle\"\n style={{\n height: '5rem',\n width: '5rem'\n }}\n />\n <div className={styles.SolidRemoveProfile} onClick={handleDeleteAvatar}>\n <span className=\"pi pi-times\" />\n </div>\n </div>\n ) : (\n <Avatar\n label={initials}\n size=\"xlarge\"\n shape=\"circle\"\n style={{\n backgroundColor: bgColor,\n color: '#ffffff',\n height: '5rem',\n width: '5rem'\n }}\n />\n )}\n\n <div className=\"flex gap-2\">\n <Button\n type=\"button\"\n size=\"small\"\n severity=\"secondary\"\n label=\"Upload Avatar\"\n outlined\n className=\"small-button\"\n onClick={() => fileInputRef.current?.click()}\n />\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".jpg,.jpeg,.png,.svg\"\n hidden\n onChange={(e) => {\n const file = e.target.files?.[0];\n if (file) handleFileChange(file);\n }}\n />\n </div>\n </div>\n </div>\n <div className='mt-4 mb-2 sm:mb-0' style={{ borderBottom: '1px dashed #D8E2EA' }}></div>\n <div className=\"mt-4\">\n <label className=\"form-field-label mb-2 font-bold\">Details</label>\n <div className=\"grid\">\n <div className=\"col-12 md:col-8 lg:col-5\">\n <label className=\"form-field-label mb-2\">Name</label>\n <InputText\n name=\"fullName\"\n value={formik.values.fullName}\n onChange={formik.handleChange}\n className=\"w-full\"\n />\n </div>\n <div className=\"col-12 md:col-8 lg:col-5\">\n <label className=\"form-field-label mb-2\">Email</label>\n <InputText disabled placeholder={userData?.data?.email} value={userData?.data?.email}\n className=\"w-full\" />\n </div>\n <div className=\"col-12 md:col-8 lg:col-5\">\n <label className=\"form-field-label mb-2\">Contact Number</label>\n <InputText disabled placeholder={userData?.data?.mobile} value={userData?.data?.mobile}\n className=\"w-full\" />\n </div>\n <div className=\"col-12 md:col-8 lg:col-5\">\n <label className=\"form-field-label mb-2\">Role</label>\n <AutoComplete\n multiple\n disabled\n value={userData?.data?.roles?.map((role: any) => role.name) || []}\n />\n\n </div>\n </div>\n </div>\n </div>\n <div>\n <Button\n type=\"submit\"\n size=\"small\"\n label=\"Save\"\n />\n </div>\n <Dialog\n header={<h5 className='m-0 font-bold'>Replace Profile Picture</h5>}\n visible={replaceDialogVisible}\n headerClassName=\"px-4 py-3 secondary-border-bottom\"\n contentClassName=\"p-0\"\n style={{ width: '25vw' }}\n className=\"solid-confirm-dialog \"\n modal\n onHide={() => setReplaceDialogVisible(false)}\n >\n <div className=\"p-4\">\n Do you want to replace the existing profile picture?\n <div className=\"flex justify-content-start mt-4 gap-2\">\n <Button size=\"small\" label=\"Confirm\" severity=\"danger\" onClick={confirmReplace} />\n <Button size=\"small\" outlined label=\"Cancel\" onClick={() => setReplaceDialogVisible(false)} />\n </div>\n </div>\n </Dialog>\n\n <Dialog\n header={<h5 className='m-0 font-bold'>Delete Profile Picture</h5>}\n visible={deleteDialogVisible}\n headerClassName=\"px-4 py-3 secondary-border-bottom\"\n contentClassName=\"p-0\"\n style={{ width: '25vw' }}\n modal\n className=\"solid-confirm-dialog \"\n onHide={() => setDeleteDialogVisible(false)}\n >\n <div className=\"p-4\">\n Do you want to delete your profile picture?\n <div className=\"flex justify-content-start mt-4 gap-2\">\n <Button size=\"small\" label=\"Confirm\" severity=\"danger\" onClick={confirmDelete} />\n <Button size=\"small\" outlined label=\"Cancel\" onClick={() => setDeleteDialogVisible(false)} />\n </div>\n </div>\n </Dialog>\n\n </form>\n )\n}"]}
1
+ {"version":3,"file":"SolidPersonalInfo.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAClE,OAAO,MAAM,MAAM,mCAAmC,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAEzD,MAAM,CAAC,IAAM,iBAAiB,GAAG;;IAC7B,IAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACpD,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAEzB,IAAA,KAAkC,QAAQ,CAAgB,IAAI,CAAC,EAA9D,YAAY,QAAA,EAAE,eAAe,QAAiC,CAAC;IAChE,IAAA,KAAgD,QAAQ,CAAC,KAAK,CAAC,EAA9D,mBAAmB,QAAA,EAAE,sBAAsB,QAAmB,CAAC;IAChE,IAAA,KAAkD,QAAQ,CAAC,KAAK,CAAC,EAAhE,oBAAoB,QAAA,EAAE,uBAAuB,QAAmB,CAAC;IAClE,IAAA,KAAgC,QAAQ,CAAc,IAAI,CAAC,EAA1D,WAAW,QAAA,EAAE,cAAc,QAA+B,CAAC;IAE5D,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAC3B,IAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC;IAElB,IAAA,KAA8B,eAAe,CAAC,MAAM,CAAC,EAA7C,QAAQ,UAAA,EAAE,OAAO,aAA4B,CAAC;IAGxD,IAAA,WAAW,GACX,sBAAsB,EAAE,GADb,CACc;IACtB,IAAA,UAAU,GAAI,4BAA4B,EAAE,GAAlC,CAAmC;IAEpD,IAAM,aAAa,GAAG;QAClB,QAAQ,EAAE,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,QAAQ,mCAAI,EAAE;QACxC,cAAc,EAAE,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,CAAC,CAAC,CAAC,0CAAE,SAAS,mCAAI,IAAI;KAC/E,CAAC;IAEF,IAAM,MAAM,GAAG,SAAS,CAAC;QACrB,aAAa,eAAA;QACb,kBAAkB,EAAE,IAAI;QACxB,QAAQ,EAAE,UAAO,MAAM;;;;;;wBAET,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAChC,IAAI,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ,EAAE;4BAC5C,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;yBAChD;wBAED,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,YAAY,IAAI,EAAE;4BAChE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;yBAC5D;wBAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;4BAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;4BACpH,sBAAO;yBACV;wBAEgB,qBAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;wBAAxD,QAAQ,GAAG,SAA6C;wBAC9D,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,MAAK,GAAG,EAAE;4BAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;4BACvI,OAAO,EAAE,CAAC;4BACV,MAAM,CAAC,SAAS,EAAE,CAAC;4BACnB,eAAe,CAAC,IAAI,CAAC,CAAC;yBACzB;6BAAM;4BACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;yBAC7H;;;;wBAED,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;;;;;aAE1H;KACJ,CAAC,CAAC;IAEH,IAAM,WAAW,GAAG,UAAC,KAAa;;QAC9B,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,IAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,OAAO,CAAA,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,WAAW,EAAE,KAAI,EAAE,CAAC;IACzC,CAAC,CAAC;IAEF,IAAM,oBAAoB,GAAG,UAAC,QAAgB;QAC1C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;SACxD;QACD,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACjC,OAAO,cAAO,GAAG,gBAAa,CAAC;IACnC,CAAC,CAAC;IACF,IAAM,KAAK,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,KAAK,CAAC;IACpC,IAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,IAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAM,gBAAgB,GAAG,UAAC,IAAU;;QAChC,IAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,QAAQ,EAAE;YACV,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;SACjC;aAAM;YACH,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC7C,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;SAC9C;IACL,CAAC,CAAC;IAGF,IAAM,kBAAkB,GAAG;;QACvB,IAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,QAAQ,EAAE;YACV,sBAAsB,CAAC,IAAI,CAAC,CAAC;SAChC;aAAM;YACH,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC7C,eAAe,CAAC,IAAI,CAAC,CAAC;SACzB;IACL,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;;;;;;oBACb,QAAQ,GAAG,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,CAAC;;;;yBAErD,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAA,EAAZ,wBAAY;oBACZ,qBAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAvC,SAAuC,CAAC;;;oBAG5C,IAAI,WAAW,EAAE;wBACb,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;wBACpD,UAAU,CAAC;4BACP,MAAM,CAAC,UAAU,EAAE,CAAC;wBACxB,CAAC,EAAE,CAAC,CAAC,CAAC;qBACT;;;;oBAGD,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;;;oBAG5H,uBAAuB,CAAC,KAAK,CAAC,CAAC;oBAC/B,cAAc,CAAC,IAAI,CAAC,CAAC;;;;SACxB,CAAC;IAEF,IAAM,aAAa,GAAG;;;;;;oBACZ,QAAQ,GAAG,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,CAAC;yBACzD,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAA,EAAZ,wBAAY;;;;oBAER,qBAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAvC,SAAuC,CAAC;oBACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;oBAC7H,OAAO,EAAE,CAAC;;;;oBAEV,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;;;oBAI/H,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;oBAC7C,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,sBAAsB,CAAC,KAAK,CAAC,CAAC;;;;SACjC,CAAC;IAEF,OAAO,CACH,gBAAM,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS,EAAC,iDAAiD,aAC5F,0BACI,0BACI,gBAAO,SAAS,EAAC,iCAAiC,gCAAwB,EAC1E,eAAK,SAAS,EAAC,+BAA+B,aACzC,YAAY,CAAC,CAAC,CAAC,CACZ,KAAC,MAAM,IAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAC,QAAQ,EACvC,KAAK,EAAE;4CACH,MAAM,EAAE,MAAM;4CACd,KAAK,EAAE,MAAM;yCAChB,GACH,CACL,CAAC,CAAC,CAAC,CAAA,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,0CAAE,SAAS,EAAC,CAAC,CAAC,CACzD,eAAK,SAAS,EAAC,UAAU,aACrB,KAAC,MAAM,IACH,KAAK,EAAE,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,0CAAE,cAAc,0CAAG,CAAC,CAAC,0CAAE,SAAS,EAC7D,KAAK,EAAC,QAAQ,EACd,KAAK,EAAE;oDACH,MAAM,EAAE,MAAM;oDACd,KAAK,EAAE,MAAM;iDAChB,GACH,EACF,cAAK,SAAS,EAAE,MAAM,CAAC,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,YAClE,eAAM,SAAS,EAAC,aAAa,GAAG,GAC9B,IACJ,CACT,CAAC,CAAC,CAAC,CACA,KAAC,MAAM,IACH,KAAK,EAAE,QAAQ,EACf,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,QAAQ,EACd,KAAK,EAAE;4CACH,eAAe,EAAE,OAAO;4CACxB,KAAK,EAAE,SAAS;4CAChB,MAAM,EAAE,MAAM;4CACd,KAAK,EAAE,MAAM;yCAChB,GACH,CACL,EAED,eAAK,SAAS,EAAC,YAAY,aACvB,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAC,WAAW,EACpB,KAAK,EAAC,eAAe,EACrB,QAAQ,QACR,SAAS,EAAC,cAAc,EACxB,OAAO,EAAE,sBAAM,OAAA,MAAA,YAAY,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,EAAA,GAC9C,EACF,gBACI,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,sBAAsB,EAC7B,MAAM,QACN,QAAQ,EAAE,UAAC,CAAC;;oDACR,IAAM,IAAI,GAAG,MAAA,CAAC,CAAC,MAAM,CAAC,KAAK,0CAAG,CAAC,CAAC,CAAC;oDACjC,IAAI,IAAI;wDAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;gDACrC,CAAC,GACH,IACA,IACJ,IACJ,EACN,cAAK,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAQ,EACxF,eAAK,SAAS,EAAC,MAAM,aACjB,gBAAO,SAAS,EAAC,iCAAiC,wBAAgB,EAClE,eAAK,SAAS,EAAC,MAAM,aACjB,eAAK,SAAS,EAAC,0BAA0B,aACrC,gBAAO,SAAS,EAAC,uBAAuB,qBAAa,EACrD,KAAC,SAAS,IACN,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAC7B,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,SAAS,EAAC,QAAQ,GACpB,IACA,EACN,eAAK,SAAS,EAAC,0BAA0B,aACrC,gBAAO,SAAS,EAAC,uBAAuB,sBAAc,EACtD,KAAC,SAAS,IAAC,QAAQ,QAAC,WAAW,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,KAAK,EAAE,KAAK,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,KAAK,EAChF,SAAS,EAAC,QAAQ,GAAG,IACvB,EACN,eAAK,SAAS,EAAC,0BAA0B,aACrC,gBAAO,SAAS,EAAC,uBAAuB,+BAAuB,EAC/D,KAAC,SAAS,IAAC,QAAQ,QAAC,WAAW,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,EAAE,KAAK,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,EAClF,SAAS,EAAC,QAAQ,GAAG,IACvB,EACN,eAAK,SAAS,EAAC,0BAA0B,aACrC,gBAAO,SAAS,EAAC,uBAAuB,qBAAa,EACrD,KAAC,YAAY,IACT,QAAQ,QACR,QAAQ,QACR,KAAK,EAAE,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,KAAK,0CAAE,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC,KAAI,EAAE,GACnE,IAEA,IACJ,IACJ,IACJ,EACN,wBACI,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,MAAM,GACd,GACA,EACN,KAAC,MAAM,IACH,MAAM,EAAE,aAAI,SAAS,EAAC,eAAe,wCAA6B,EAClE,OAAO,EAAE,oBAAoB,EAC7B,eAAe,EAAC,mCAAmC,EACnD,gBAAgB,EAAC,KAAK,EACtB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,SAAS,EAAC,uBAAuB,EACjC,KAAK,QACL,MAAM,EAAE,cAAM,OAAA,uBAAuB,CAAC,KAAK,CAAC,EAA9B,CAA8B,YAE5C,eAAK,SAAS,EAAC,KAAK,qEAEhB,eAAK,SAAS,EAAC,uCAAuC,aAClD,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAc,GAAI,EAClF,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,QAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAM,OAAA,uBAAuB,CAAC,KAAK,CAAC,EAA9B,CAA8B,GAAI,IAC5F,IACJ,GACD,EAET,KAAC,MAAM,IACH,MAAM,EAAE,aAAI,SAAS,EAAC,eAAe,uCAA4B,EACjE,OAAO,EAAE,mBAAmB,EAC5B,eAAe,EAAC,mCAAmC,EACnD,gBAAgB,EAAC,KAAK,EACtB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,KAAK,QACL,SAAS,EAAC,uBAAuB,EACjC,MAAM,EAAE,cAAM,OAAA,sBAAsB,CAAC,KAAK,CAAC,EAA7B,CAA6B,YAE3C,eAAK,SAAS,EAAC,KAAK,4DAEhB,eAAK,SAAS,EAAC,uCAAuC,aAClD,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAE,aAAa,GAAI,EACjF,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,QAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAM,OAAA,sBAAsB,CAAC,KAAK,CAAC,EAA7B,CAA6B,GAAI,IAC3F,IACJ,GACD,IAEN,CACV,CAAA;AACL,CAAC,CAAA","sourcesContent":["\n\nimport { useDeleteMediaMutation } from \"../../../../redux/api/mediaApi\";\nimport { useGetUserQuery, useUpdateUserProfileMutation } from \"../../../../redux/api/userApi\";\nimport { useFormik } from \"formik\";\nimport { AutoComplete } from \"primereact/autocomplete\";\nimport { Avatar } from \"primereact/avatar\";\nimport { Button } from \"primereact/button\";\nimport { Dialog } from \"primereact/dialog\";\nimport { InputText } from \"primereact/inputtext\";\nimport { useRef, useState } from \"react\";\nimport { useDispatch } from 'react-redux';\nimport { showToast } from '../../../../redux/features/toastSlice';\nimport styles from './SolidAccountSettings.module.css'\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { useSession } from '../../../../hooks/useSession'\n\nexport const SolidPersonalInfo = () => {\n const fileInputRef = useRef<HTMLInputElement>(null);\n const dispatch = useDispatch();\n\n const [previewImage, setPreviewImage] = useState<string | null>(null);\n const [deleteDialogVisible, setDeleteDialogVisible] = useState(false);\n const [replaceDialogVisible, setReplaceDialogVisible] = useState(false);\n const [pendingFile, setPendingFile] = useState<File | null>(null);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n const userId = user?.id;\n\n const { data: userData, refetch } = useGetUserQuery(userId);\n\n const [\n deleteMedia,\n ] = useDeleteMediaMutation();\n const [updateUser] = useUpdateUserProfileMutation();\n\n const initialValues = {\n fullName: userData?.data?.fullName ?? \"\",\n profilePicture: userData?.data?._media?.profilePicture[0]?._full_url ?? null,\n };\n\n const formik = useFormik({\n initialValues,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n const formData = new FormData();\n if (values.fullName !== initialValues.fullName) {\n formData.append(\"fullName\", values.fullName);\n }\n\n if (values.profilePicture && values.profilePicture instanceof File) {\n formData.append(\"profilePicture\", values.profilePicture);\n }\n\n if (!formData.has(\"fullName\") && !formData.has(\"profilePicture\")) {\n dispatch(showToast({ severity: \"info\", summary: ERROR_MESSAGES.NO_CHANGE, detail: ERROR_MESSAGES.NO_UPDATE_MADE }));\n return;\n }\n\n const response = await updateUser({ data: formData }).unwrap();\n if (response?.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.PROFILE_SAVED, detail: ERROR_MESSAGES.PROFILE_SAVED_SUCCESSFULLY }));\n refetch();\n formik.resetForm();\n setPreviewImage(null);\n } else {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_UPDATED_PROFILE }));\n }\n } catch (error) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.SOMETHING_WRONG }));\n }\n },\n });\n\n const getInitials = (value: string) => {\n if (!value) return \"\";\n\n const email = value.includes('@') ? value.split('@')[0] : value;\n return email[0]?.toUpperCase() || \"\";\n };\n\n const getColorFromInitials = (initials: string) => {\n let hash = 0;\n for (let i = 0; i < initials.length; i++) {\n hash = initials.charCodeAt(i) + ((hash << 5) - hash);\n }\n const hue = Math.abs(hash) % 360;\n return `hsl(${hue}, 60%, 60%)`;\n };\n const value = userData?.data?.email;\n const initials = getInitials(value);\n const bgColor = getColorFromInitials(initials);\n\n const handleFileChange = (file: File) => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n if (existing) {\n setPendingFile(file);\n setReplaceDialogVisible(true);\n } else {\n formik.setFieldValue(\"profilePicture\", file);\n setPreviewImage(URL.createObjectURL(file));\n }\n };\n\n\n const handleDeleteAvatar = () => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n if (existing) {\n setDeleteDialogVisible(true);\n } else {\n formik.setFieldValue(\"profilePicture\", null);\n setPreviewImage(null);\n }\n };\n\n const confirmReplace = async () => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n try {\n if (existing?.id) {\n await deleteMedia(existing.id).unwrap();\n }\n\n if (pendingFile) {\n formik.setFieldValue(\"profilePicture\", pendingFile);\n setTimeout(() => {\n formik.submitForm();\n }, 0);\n }\n\n } catch (error) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_DELETED_IMAGE }));\n }\n\n setReplaceDialogVisible(false);\n setPendingFile(null);\n };\n\n const confirmDelete = async () => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n if (existing?.id) {\n try {\n await deleteMedia(existing.id).unwrap();\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.DELETED, detail: ERROR_MESSAGES.PROFILE_PICTURE_REMOVE }));\n refetch();\n } catch {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.FAILED_DELETED_IMAGE }));\n }\n }\n\n formik.setFieldValue(\"profilePicture\", null);\n setPreviewImage(null);\n setDeleteDialogVisible(false);\n };\n\n return (\n <form onSubmit={formik.handleSubmit} className=\"h-full flex flex-column justify-content-between\">\n <div>\n <div>\n <label className=\"form-field-label mb-2 font-bold\">Profile Picture</label>\n <div className=\"flex align-items-center gap-3\">\n {previewImage ? (\n <Avatar image={previewImage} shape=\"circle\"\n style={{\n height: '5rem',\n width: '5rem'\n }}\n />\n ) : userData?.data?._media?.profilePicture?.[0]?._full_url ? (\n <div className=\"relative\">\n <Avatar\n image={userData?.data?._media?.profilePicture?.[0]?._full_url}\n shape=\"circle\"\n style={{\n height: '5rem',\n width: '5rem'\n }}\n />\n <div className={styles.SolidRemoveProfile} onClick={handleDeleteAvatar}>\n <span className=\"pi pi-times\" />\n </div>\n </div>\n ) : (\n <Avatar\n label={initials}\n size=\"xlarge\"\n shape=\"circle\"\n style={{\n backgroundColor: bgColor,\n color: '#ffffff',\n height: '5rem',\n width: '5rem'\n }}\n />\n )}\n\n <div className=\"flex gap-2\">\n <Button\n type=\"button\"\n size=\"small\"\n severity=\"secondary\"\n label=\"Upload Avatar\"\n outlined\n className=\"small-button\"\n onClick={() => fileInputRef.current?.click()}\n />\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".jpg,.jpeg,.png,.svg\"\n hidden\n onChange={(e) => {\n const file = e.target.files?.[0];\n if (file) handleFileChange(file);\n }}\n />\n </div>\n </div>\n </div>\n <div className='mt-4 mb-2 sm:mb-0' style={{ borderBottom: '1px dashed #D8E2EA' }}></div>\n <div className=\"mt-4\">\n <label className=\"form-field-label mb-2 font-bold\">Details</label>\n <div className=\"grid\">\n <div className=\"col-12 md:col-8 lg:col-5\">\n <label className=\"form-field-label mb-2\">Name</label>\n <InputText\n name=\"fullName\"\n value={formik.values.fullName}\n onChange={formik.handleChange}\n className=\"w-full\"\n />\n </div>\n <div className=\"col-12 md:col-8 lg:col-5\">\n <label className=\"form-field-label mb-2\">Email</label>\n <InputText disabled placeholder={userData?.data?.email} value={userData?.data?.email}\n className=\"w-full\" />\n </div>\n <div className=\"col-12 md:col-8 lg:col-5\">\n <label className=\"form-field-label mb-2\">Contact Number</label>\n <InputText disabled placeholder={userData?.data?.mobile} value={userData?.data?.mobile}\n className=\"w-full\" />\n </div>\n <div className=\"col-12 md:col-8 lg:col-5\">\n <label className=\"form-field-label mb-2\">Role</label>\n <AutoComplete\n multiple\n disabled\n value={userData?.data?.roles?.map((role: any) => role.name) || []}\n />\n\n </div>\n </div>\n </div>\n </div>\n <div>\n <Button\n type=\"submit\"\n size=\"small\"\n label=\"Save\"\n />\n </div>\n <Dialog\n header={<h5 className='m-0 font-bold'>Replace Profile Picture</h5>}\n visible={replaceDialogVisible}\n headerClassName=\"px-4 py-3 secondary-border-bottom\"\n contentClassName=\"p-0\"\n style={{ width: '25vw' }}\n className=\"solid-confirm-dialog \"\n modal\n onHide={() => setReplaceDialogVisible(false)}\n >\n <div className=\"p-4\">\n Do you want to replace the existing profile picture?\n <div className=\"flex justify-content-start mt-4 gap-2\">\n <Button size=\"small\" label=\"Confirm\" severity=\"danger\" onClick={confirmReplace} />\n <Button size=\"small\" outlined label=\"Cancel\" onClick={() => setReplaceDialogVisible(false)} />\n </div>\n </div>\n </Dialog>\n\n <Dialog\n header={<h5 className='m-0 font-bold'>Delete Profile Picture</h5>}\n visible={deleteDialogVisible}\n headerClassName=\"px-4 py-3 secondary-border-bottom\"\n contentClassName=\"p-0\"\n style={{ width: '25vw' }}\n modal\n className=\"solid-confirm-dialog \"\n onHide={() => setDeleteDialogVisible(false)}\n >\n <div className=\"p-4\">\n Do you want to delete your profile picture?\n <div className=\"flex justify-content-start mt-4 gap-2\">\n <Button size=\"small\" label=\"Confirm\" severity=\"danger\" onClick={confirmDelete} />\n <Button size=\"small\" outlined label=\"Cancel\" onClick={() => setDeleteDialogVisible(false)} />\n </div>\n </div>\n </Dialog>\n\n </form>\n )\n}"]}
@@ -8,16 +8,16 @@ import { Avatar } from "primereact/avatar";
8
8
  import { Button } from "primereact/button";
9
9
  import { Dialog } from "primereact/dialog";
10
10
  import { InputText } from "primereact/inputtext";
11
- import { Toast } from "primereact/toast";
12
11
  import { useRef, useState } from "react";
12
+ import { useDispatch } from 'react-redux';
13
+ import { showToast } from '../../../../redux/features/toastSlice';
13
14
  import styles from './SolidAccountSettings.module.css'
14
15
  import { ERROR_MESSAGES } from "../../../../constants/error-messages";
15
- import showToast from "../../../../helpers/showToast";
16
16
  import { useSession } from '../../../../hooks/useSession'
17
17
 
18
18
  export const SolidPersonalInfo = () => {
19
19
  const fileInputRef = useRef<HTMLInputElement>(null);
20
- const toast = useRef<Toast>(null);
20
+ const dispatch = useDispatch();
21
21
 
22
22
  const [previewImage, setPreviewImage] = useState<string | null>(null);
23
23
  const [deleteDialogVisible, setDeleteDialogVisible] = useState(false);
@@ -55,21 +55,21 @@ export const SolidPersonalInfo = () => {
55
55
  }
56
56
 
57
57
  if (!formData.has("fullName") && !formData.has("profilePicture")) {
58
- showToast(toast, "info", ERROR_MESSAGES.NO_CHANGE, ERROR_MESSAGES.NO_UPDATE_MADE);
58
+ dispatch(showToast({ severity: "info", summary: ERROR_MESSAGES.NO_CHANGE, detail: ERROR_MESSAGES.NO_UPDATE_MADE }));
59
59
  return;
60
60
  }
61
61
 
62
62
  const response = await updateUser({ data: formData }).unwrap();
63
63
  if (response?.statusCode === 200) {
64
- showToast(toast, "success", ERROR_MESSAGES.PROFILE_SAVED, ERROR_MESSAGES.PROFILE_SAVED_SUCCESSFULLY);
64
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.PROFILE_SAVED, detail: ERROR_MESSAGES.PROFILE_SAVED_SUCCESSFULLY }));
65
65
  refetch();
66
66
  formik.resetForm();
67
67
  setPreviewImage(null);
68
68
  } else {
69
- showToast(toast, "error", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_UPDATED_PROFILE);
69
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_UPDATED_PROFILE }));
70
70
  }
71
71
  } catch (error) {
72
- showToast(toast, "error", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.SOMETHING_WRONG);
72
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.SOMETHING_WRONG }));
73
73
  }
74
74
  },
75
75
  });
@@ -130,7 +130,7 @@ export const SolidPersonalInfo = () => {
130
130
  }
131
131
 
132
132
  } catch (error) {
133
- showToast(toast, "error", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_DELETED_IMAGE);
133
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_DELETED_IMAGE }));
134
134
  }
135
135
 
136
136
  setReplaceDialogVisible(false);
@@ -142,10 +142,10 @@ export const SolidPersonalInfo = () => {
142
142
  if (existing?.id) {
143
143
  try {
144
144
  await deleteMedia(existing.id).unwrap();
145
- showToast(toast, "success", ERROR_MESSAGES.DELETED, ERROR_MESSAGES.PROFILE_PICTURE_REMOVE);
145
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.DELETED, detail: ERROR_MESSAGES.PROFILE_PICTURE_REMOVE }));
146
146
  refetch();
147
147
  } catch {
148
- showToast(toast, "error", ERROR_MESSAGES.ERROR, ERROR_MESSAGES.FAILED_DELETED_IMAGE);
148
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.FAILED_DELETED_IMAGE }));
149
149
  }
150
150
  }
151
151
 
@@ -156,7 +156,6 @@ export const SolidPersonalInfo = () => {
156
156
 
157
157
  return (
158
158
  <form onSubmit={formik.handleSubmit} className="h-full flex flex-column justify-content-between">
159
- <Toast ref={toast} />
160
159
  <div>
161
160
  <div>
162
161
  <label className="form-field-label mb-2 font-bold">Profile Picture</label>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidImportDropzone.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidGenericImport/SolidImportDropzone.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,mBAAmB,yDAA0D,GAAG,4CAyG5F,CAAA"}
1
+ {"version":3,"file":"SolidImportDropzone.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidGenericImport/SolidImportDropzone.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,mBAAmB,yDAA0D,GAAG,4CAwG5F,CAAA"}
@@ -46,18 +46,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  }
47
47
  };
48
48
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
49
- import { useCallback, useRef, useState } from 'react';
49
+ import { useCallback, useState } from 'react';
50
50
  import { useDropzone } from 'react-dropzone';
51
51
  import { Button } from 'primereact/button';
52
+ import { useDispatch } from 'react-redux';
53
+ import { showToast } from '../../../../redux/features/toastSlice';
52
54
  import styles from './SolidImport.module.css';
53
55
  import { DocumentSvg } from './DocumentSvg';
54
56
  import { useCreateImportTransactionMutation } from '../../../../redux/api/importTransactionApi';
55
- import { Toast } from 'primereact/toast';
56
57
  import { ERROR_MESSAGES } from '../../../../constants/error-messages';
57
- import showToast from "../../../../helpers/showToast";
58
58
  export var SolidImportDropzone = function (_a) {
59
59
  var setImportStep = _a.setImportStep, setTransactionId = _a.setTransactionId, modelMetadataId = _a.modelMetadataId;
60
- var toast = useRef(null);
60
+ var dispatch = useDispatch();
61
61
  var _b = useState(null), file = _b[0], setFile = _b[1];
62
62
  var _c = useCreateImportTransactionMutation(), createImportTransaction = _c[0], isLoading = _c[1].isLoading;
63
63
  var uploadFile = function (uploadFile) { return __awaiter(void 0, void 0, void 0, function () {
@@ -78,17 +78,17 @@ export var SolidImportDropzone = function (_a) {
78
78
  console.log('Upload success:', response);
79
79
  if ((response === null || response === void 0 ? void 0 : response.statusCode) === 200) {
80
80
  setFile(uploadFile);
81
- showToast(toast, "success", ERROR_MESSAGES.FILE_UPLOAD, ERROR_MESSAGES.FILE_UPLOAD_SUCCESSFULLY);
81
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.FILE_UPLOAD, detail: ERROR_MESSAGES.FILE_UPLOAD_SUCCESSFULLY }));
82
82
  setTransactionId === null || setTransactionId === void 0 ? void 0 : setTransactionId((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.id);
83
83
  }
84
84
  else {
85
- showToast(toast, "error", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_UPLOAD_FILE);
85
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_UPLOAD_FILE }));
86
86
  }
87
87
  return [3 /*break*/, 4];
88
88
  case 3:
89
89
  error_1 = _b.sent();
90
90
  console.error(ERROR_MESSAGES.FAILED_UPLOAD_FILE, error_1);
91
- showToast(toast, "error", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_UPLOAD_FILE);
91
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_UPLOAD_FILE }));
92
92
  return [3 /*break*/, 4];
93
93
  case 4: return [2 /*return*/];
94
94
  }
@@ -118,10 +118,10 @@ export var SolidImportDropzone = function (_a) {
118
118
  var i = Math.floor(Math.log(bytes) / Math.log(1024));
119
119
  return "".concat((bytes / Math.pow(1024, i)).toFixed(2), " ").concat(sizes[i]);
120
120
  };
121
- return (_jsxs("div", { children: [_jsx(Toast, { ref: toast }), _jsx("div", { className: styles.SolidImportContextWrapper, children: _jsxs("div", __assign({}, getRootProps({ className: styles.dropzone }), { className: 'h-full flex flex-column align-items-center justify-content-center', children: [_jsx("input", __assign({}, getInputProps())), _jsxs("div", { className: "", children: [_jsx("div", { className: 'flex justify-content-center', children: _jsx(DocumentSvg, {}) }), _jsx("h5", { className: 'text-center solid-primary-black-text', children: "Drop or upload a file to import" }), _jsxs("p", { className: 'text-center m-0', children: ["Excel files are recommended as formatting is automatic.", _jsx("br", {}), "But, you can also use .csv files"] }), _jsx("div", { className: 'flex justify-content-center mt-3', children: _jsx(Button, { label: "Click to browse", size: "small", severity: 'secondary', outlined: true }) })] }), file &&
121
+ return (_jsxs("div", { children: [_jsx("div", { className: styles.SolidImportContextWrapper, children: _jsxs("div", __assign({}, getRootProps({ className: styles.dropzone }), { className: 'h-full flex flex-column align-items-center justify-content-center', children: [_jsx("input", __assign({}, getInputProps())), _jsxs("div", { className: "", children: [_jsx("div", { className: 'flex justify-content-center', children: _jsx(DocumentSvg, {}) }), _jsx("h5", { className: 'text-center solid-primary-black-text', children: "Drop or upload a file to import" }), _jsxs("p", { className: 'text-center m-0', children: ["Excel files are recommended as formatting is automatic.", _jsx("br", {}), "But, you can also use .csv files"] }), _jsx("div", { className: 'flex justify-content-center mt-3', children: _jsx(Button, { label: "Click to browse", size: "small", severity: 'secondary', outlined: true }) })] }), file &&
122
122
  _jsxs("div", { className: "flex align-items-start justify-content-between gap-3 p-3 mt-4 w-full md:w-8", style: { border: '1px solid var(--primary-light-color)', borderRadius: 6 }, onClick: function (e) { return e.stopPropagation(); }, children: [_jsxs("div", { children: [_jsxs("p", { className: 'm-0', children: [_jsx("strong", { children: "File:" }), " ", file.name] }), _jsxs("p", { className: 'm-0', children: [_jsx("strong", { children: "Type:" }), " ", file.type || 'Unknown'] }), _jsxs("p", { className: 'm-0', children: [_jsx("strong", { children: "Size:" }), " ", formatBytes(file.size)] })] }), _jsx("div", { children: _jsx(Button, { size: "small", icon: "pi pi-trash", text: true, onClick: removeFile }) })] })] })) }), _jsx("div", { className: 'mt-3 flex align-items-center gap-3', children: _jsx(Button, { label: 'Continue', size: 'small', onClick: function () {
123
123
  if (!file) {
124
- showToast(toast, "error", ERROR_MESSAGES.MISSING_FILE, ERROR_MESSAGES.FAILED_UPLOAD_FILE);
124
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.MISSING_FILE, detail: ERROR_MESSAGES.FAILED_UPLOAD_FILE }));
125
125
  return;
126
126
  }
127
127
  setImportStep(3);
@@ -1 +1 @@
1
- {"version":3,"file":"SolidImportDropzone.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidGenericImport/SolidImportDropzone.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useCallback, useRef, useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { Button } from 'primereact/button'\nimport styles from './SolidImport.module.css'\nimport { DocumentSvg } from './DocumentSvg';\nimport { useCreateImportTransactionMutation } from '../../../../redux/api/importTransactionApi';\nimport { Toast } from 'primereact/toast';\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport showToast from \"../../../../helpers/showToast\";\nexport const SolidImportDropzone = ({ setImportStep, setTransactionId, modelMetadataId }: any) => {\n const toast = useRef<Toast>(null);\n\n const [file, setFile] = useState<File | null>(null);\n const [createImportTransaction, { isLoading }] = useCreateImportTransactionMutation();\n\n\n const uploadFile = async (uploadFile: File) => {\n const formData = new FormData();\n formData.append('fileLocation', uploadFile);\n formData.append('modelMetadataId', modelMetadataId);\n\n try {\n const response = await createImportTransaction(formData).unwrap();\n console.log('Upload success:', response);\n if (response?.statusCode === 200) {\n setFile(uploadFile);\n showToast(toast, \"success\", ERROR_MESSAGES.FILE_UPLOAD, ERROR_MESSAGES.FILE_UPLOAD_SUCCESSFULLY);\n setTransactionId?.(response?.data?.id);\n } else {\n showToast(toast, \"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_UPLOAD_FILE)\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.FAILED_UPLOAD_FILE, error);\n showToast(toast, \"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_UPLOAD_FILE)\n }\n };\n\n const onDrop = useCallback((acceptedFiles: File[]) => {\n if (acceptedFiles.length > 0) {\n const selectedFile = acceptedFiles[0];\n uploadFile(selectedFile); // 👈 Auto upload on drop\n }\n }, []);\n\n const { getRootProps, getInputProps, open } = useDropzone({\n onDrop,\n accept: {\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': ['.xlsx'],\n 'text/csv': ['.csv']\n },\n multiple: false,\n });\n\n const removeFile = () => {\n setFile(null);\n };\n\n const formatBytes = (bytes: number) => {\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n if (bytes === 0) return '0 Byte';\n const i = Math.floor(Math.log(bytes) / Math.log(1024));\n return `${(bytes / Math.pow(1024, i)).toFixed(2)} ${sizes[i]}`;\n };\n\n return (\n <div>\n <Toast ref={toast} />\n <div className={styles.SolidImportContextWrapper}>\n <div {...getRootProps({ className: styles.dropzone })} className='h-full flex flex-column align-items-center justify-content-center'>\n <input {...getInputProps()} />\n {/* {!file ? ( */}\n <div className={\"\"}>\n <div className='flex justify-content-center'>\n <DocumentSvg />\n </div>\n <h5 className='text-center solid-primary-black-text'>Drop or upload a file to import</h5>\n <p className='text-center m-0'>Excel files are recommended as formatting is automatic.<br />\n But, you can also use .csv files</p>\n <div className='flex justify-content-center mt-3'>\n <Button label=\"Click to browse\" size=\"small\" severity='secondary' outlined />\n </div>\n </div>\n {/* ) : ( */}\n {file &&\n <div className=\"flex align-items-start justify-content-between gap-3 p-3 mt-4 w-full md:w-8\" style={{ border: '1px solid var(--primary-light-color)', borderRadius: 6 }} onClick={(e) => e.stopPropagation()}>\n <div>\n <p className='m-0'><strong>File:</strong> {file.name}</p>\n <p className='m-0'><strong>Type:</strong> {file.type || 'Unknown'}</p>\n <p className='m-0'><strong>Size:</strong> {formatBytes(file.size)}</p>\n </div>\n <div>\n <Button size=\"small\" icon=\"pi pi-trash\" text onClick={removeFile} />\n </div>\n </div>\n }\n {/* )} */}\n </div>\n </div>\n <div className='mt-3 flex align-items-center gap-3'>\n <Button\n label='Continue'\n size='small'\n onClick={() => {\n if (!file) {\n showToast(toast, \"error\", ERROR_MESSAGES.MISSING_FILE, ERROR_MESSAGES.FAILED_UPLOAD_FILE);\n return;\n }\n setImportStep(3);\n }}\n disabled={!file}\n />\n </div>\n </div>\n )\n}"]}
1
+ {"version":3,"file":"SolidImportDropzone.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidGenericImport/SolidImportDropzone.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useCallback, useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { Button } from 'primereact/button'\nimport { useDispatch } from 'react-redux';\nimport { showToast } from '../../../../redux/features/toastSlice';\nimport styles from './SolidImport.module.css'\nimport { DocumentSvg } from './DocumentSvg';\nimport { useCreateImportTransactionMutation } from '../../../../redux/api/importTransactionApi';\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nexport const SolidImportDropzone = ({ setImportStep, setTransactionId, modelMetadataId }: any) => {\n const dispatch = useDispatch();\n\n const [file, setFile] = useState<File | null>(null);\n const [createImportTransaction, { isLoading }] = useCreateImportTransactionMutation();\n\n\n const uploadFile = async (uploadFile: File) => {\n const formData = new FormData();\n formData.append('fileLocation', uploadFile);\n formData.append('modelMetadataId', modelMetadataId);\n\n try {\n const response = await createImportTransaction(formData).unwrap();\n console.log('Upload success:', response);\n if (response?.statusCode === 200) {\n setFile(uploadFile);\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.FILE_UPLOAD, detail: ERROR_MESSAGES.FILE_UPLOAD_SUCCESSFULLY }));\n setTransactionId?.(response?.data?.id);\n } else {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_UPLOAD_FILE }))\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.FAILED_UPLOAD_FILE, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_UPLOAD_FILE }))\n }\n };\n\n const onDrop = useCallback((acceptedFiles: File[]) => {\n if (acceptedFiles.length > 0) {\n const selectedFile = acceptedFiles[0];\n uploadFile(selectedFile); // 👈 Auto upload on drop\n }\n }, []);\n\n const { getRootProps, getInputProps, open } = useDropzone({\n onDrop,\n accept: {\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': ['.xlsx'],\n 'text/csv': ['.csv']\n },\n multiple: false,\n });\n\n const removeFile = () => {\n setFile(null);\n };\n\n const formatBytes = (bytes: number) => {\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n if (bytes === 0) return '0 Byte';\n const i = Math.floor(Math.log(bytes) / Math.log(1024));\n return `${(bytes / Math.pow(1024, i)).toFixed(2)} ${sizes[i]}`;\n };\n\n return (\n <div>\n <div className={styles.SolidImportContextWrapper}>\n <div {...getRootProps({ className: styles.dropzone })} className='h-full flex flex-column align-items-center justify-content-center'>\n <input {...getInputProps()} />\n {/* {!file ? ( */}\n <div className={\"\"}>\n <div className='flex justify-content-center'>\n <DocumentSvg />\n </div>\n <h5 className='text-center solid-primary-black-text'>Drop or upload a file to import</h5>\n <p className='text-center m-0'>Excel files are recommended as formatting is automatic.<br />\n But, you can also use .csv files</p>\n <div className='flex justify-content-center mt-3'>\n <Button label=\"Click to browse\" size=\"small\" severity='secondary' outlined />\n </div>\n </div>\n {/* ) : ( */}\n {file &&\n <div className=\"flex align-items-start justify-content-between gap-3 p-3 mt-4 w-full md:w-8\" style={{ border: '1px solid var(--primary-light-color)', borderRadius: 6 }} onClick={(e) => e.stopPropagation()}>\n <div>\n <p className='m-0'><strong>File:</strong> {file.name}</p>\n <p className='m-0'><strong>Type:</strong> {file.type || 'Unknown'}</p>\n <p className='m-0'><strong>Size:</strong> {formatBytes(file.size)}</p>\n </div>\n <div>\n <Button size=\"small\" icon=\"pi pi-trash\" text onClick={removeFile} />\n </div>\n </div>\n }\n {/* )} */}\n </div>\n </div>\n <div className='mt-3 flex align-items-center gap-3'>\n <Button\n label='Continue'\n size='small'\n onClick={() => {\n if (!file) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.MISSING_FILE, detail: ERROR_MESSAGES.FAILED_UPLOAD_FILE }));\n return;\n }\n setImportStep(3);\n }}\n disabled={!file}\n />\n </div>\n </div>\n )\n}"]}