@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.
- package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
- package/dist/components/auth/GoogleAuthChecking.js +10 -10
- package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
- package/dist/components/auth/GoogleAuthChecking.tsx +8 -9
- package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.js +9 -10
- package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.tsx +6 -9
- package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidForgotPassword.js +8 -8
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.tsx +6 -8
- package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +57 -57
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +10 -11
- package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +57 -57
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +10 -11
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +12 -12
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +11 -16
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +19 -19
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +18 -23
- package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidResetPassword.js +15 -15
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.tsx +7 -8
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +87 -120
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +12 -42
- package/dist/components/common/GlobalToast.d.ts +2 -0
- package/dist/components/common/GlobalToast.d.ts.map +1 -0
- package/dist/components/common/GlobalToast.js +25 -0
- package/dist/components/common/GlobalToast.js.map +1 -0
- package/dist/components/common/GlobalToast.tsx +25 -0
- package/dist/components/common/SolidExport.d.ts.map +1 -1
- package/dist/components/common/SolidExport.js +19 -31
- package/dist/components/common/SolidExport.js.map +1 -1
- package/dist/components/common/SolidExport.tsx +7 -19
- package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
- package/dist/components/common/SolidFormStepper.js +41 -41
- package/dist/components/common/SolidFormStepper.js.map +1 -1
- package/dist/components/common/SolidFormStepper.tsx +5 -6
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +9 -9
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +8 -9
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +8 -8
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +7 -9
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +11 -11
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +10 -11
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +9 -9
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +8 -9
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +7 -7
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +6 -7
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +78 -21
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +65 -10
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +6 -8
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +5 -9
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +9 -11
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +5 -10
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js +5 -6
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +5 -8
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +10 -12
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +6 -11
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +11 -6
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +13 -1
- package/dist/components/core/form/SolidFormUserViewLayout.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormUserViewLayout.js +7 -8
- package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
- package/dist/components/core/form/SolidFormUserViewLayout.tsx +5 -7
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +12 -21
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +11 -33
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +37 -26
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -5
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +11 -11
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +9 -11
- package/dist/components/core/kanban/KanbanUserViewLayout.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanUserViewLayout.js +7 -8
- package/dist/components/core/kanban/KanbanUserViewLayout.js.map +1 -1
- package/dist/components/core/kanban/KanbanUserViewLayout.tsx +4 -6
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +5 -7
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +4 -9
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +13 -13
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +5 -6
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +20 -67
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +9 -76
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +15 -25
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +12 -32
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +6 -17
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +5 -26
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +48 -55
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +4 -22
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +42 -44
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +13 -27
- package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
- package/dist/components/core/module/ModuleListViewData.js +11 -7
- package/dist/components/core/module/ModuleListViewData.js.map +1 -1
- package/dist/components/core/module/ModuleListViewData.tsx +10 -8
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +32 -69
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +8 -47
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +24 -37
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +8 -46
- package/dist/components/core/users/UserListView.d.ts.map +1 -1
- package/dist/components/core/users/UserListView.js +9 -16
- package/dist/components/core/users/UserListView.js.map +1 -1
- package/dist/components/core/users/UserListView.tsx +5 -21
- package/dist/components/layout/AdminLayout.d.ts.map +1 -1
- package/dist/components/layout/AdminLayout.js +4 -2
- package/dist/components/layout/AdminLayout.js.map +1 -1
- package/dist/components/layout/AdminLayout.tsx +4 -2
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +1 -2
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +0 -2
- package/dist/components/layout/Layout.d.ts.map +1 -1
- package/dist/components/layout/Layout.js +2 -1
- package/dist/components/layout/Layout.js.map +1 -1
- package/dist/components/layout/Layout.tsx +2 -0
- package/dist/components/layout/navbar-one.d.ts.map +1 -1
- package/dist/components/layout/navbar-one.js +1 -2
- package/dist/components/layout/navbar-one.js.map +1 -1
- package/dist/components/layout/navbar-one.tsx +0 -2
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +50 -24
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +48 -30
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +4 -0
- package/dist/redux/features/toastSlice.d.ts +15 -0
- package/dist/redux/features/toastSlice.d.ts.map +1 -0
- package/dist/redux/features/toastSlice.js +20 -0
- package/dist/redux/features/toastSlice.js.map +1 -0
- package/dist/redux/features/toastSlice.ts +35 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +2 -1
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +2 -0
- 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 {
|
|
44
|
-
import {
|
|
45
|
-
import showToast from
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,sCAAsC,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAC1H,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,
|
|
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 {
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
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
|
|
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(
|
|
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(
|
|
76
|
+
dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.UPDATED, detail: ERROR_MESSAGES.SETTING_UPDATED }));
|
|
78
77
|
}
|
|
79
78
|
|
|
80
79
|
} catch (error) {
|
|
81
|
-
showToast(
|
|
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,+
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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: [
|
|
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":"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","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":"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","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
|
|
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(
|
|
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(
|
|
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(
|
|
69
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FAILED, detail: ERROR_MESSAGES.FAILED_UPDATED_PROFILE }));
|
|
70
70
|
}
|
|
71
71
|
} catch (error) {
|
|
72
|
-
showToast(
|
|
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(
|
|
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(
|
|
145
|
+
dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.DELETED, detail: ERROR_MESSAGES.PROFILE_PICTURE_REMOVE }));
|
|
146
146
|
refetch();
|
|
147
147
|
} catch {
|
|
148
|
-
showToast(
|
|
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,
|
|
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,
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,WAAW,EAAE,
|
|
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}"]}
|