@solidxai/core-ui 0.1.12 → 0.1.13-beta.1

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 (100) hide show
  1. package/dist/adapters/auth/sessionInvalidation.d.ts +3 -0
  2. package/dist/adapters/auth/sessionInvalidation.d.ts.map +1 -0
  3. package/dist/adapters/auth/sessionInvalidation.js +70 -0
  4. package/dist/adapters/auth/sessionInvalidation.js.map +1 -0
  5. package/dist/adapters/auth/sessionInvalidation.ts +22 -0
  6. package/dist/adapters/auth/signOut.d.ts.map +1 -1
  7. package/dist/adapters/auth/signOut.js +0 -2
  8. package/dist/adapters/auth/signOut.js.map +1 -1
  9. package/dist/adapters/auth/signOut.ts +0 -2
  10. package/dist/components/core/card/CardGrid.d.ts +1 -1
  11. package/dist/components/core/card/CardGrid.d.ts.map +1 -1
  12. package/dist/components/core/card/CardGrid.js +2 -2
  13. package/dist/components/core/card/CardGrid.js.map +1 -1
  14. package/dist/components/core/card/CardGrid.tsx +2 -0
  15. package/dist/components/core/card/CardItem.d.ts +1 -0
  16. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  17. package/dist/components/core/card/CardItem.js +2 -2
  18. package/dist/components/core/card/CardItem.js.map +1 -1
  19. package/dist/components/core/card/CardItem.tsx +11 -0
  20. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  21. package/dist/components/core/card/SolidCardView.js +82 -30
  22. package/dist/components/core/card/SolidCardView.js.map +1 -1
  23. package/dist/components/core/card/SolidCardView.tsx +68 -7
  24. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  25. package/dist/components/core/chatter/SolidMessageComposer.js +4 -14
  26. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  27. package/dist/components/core/chatter/SolidMessageComposer.tsx +4 -15
  28. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  29. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +2 -1
  30. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  31. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +3 -1
  32. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
  33. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +2 -1
  34. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
  35. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +2 -1
  36. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +32 -2
  37. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  38. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +1 -1
  39. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  40. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +3 -1
  41. package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
  42. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  43. package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -1
  44. package/dist/components/core/common/globalSearchPersistence.d.ts +7 -0
  45. package/dist/components/core/common/globalSearchPersistence.d.ts.map +1 -0
  46. package/dist/components/core/common/globalSearchPersistence.js +89 -0
  47. package/dist/components/core/common/globalSearchPersistence.js.map +1 -0
  48. package/dist/components/core/common/globalSearchPersistence.ts +88 -0
  49. package/dist/components/core/form/SolidFormFooter.js +1 -1
  50. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  51. package/dist/components/core/form/SolidFormFooter.tsx +1 -1
  52. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  53. package/dist/components/core/form/fields/SolidMediaMultipleField.js +6 -8
  54. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  55. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +36 -55
  56. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  57. package/dist/components/core/kanban/SolidKanbanView.js +2 -2
  58. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  59. package/dist/components/core/kanban/SolidKanbanView.tsx +3 -2
  60. package/dist/components/core/list/SolidCustomListViewColumn.d.ts +8 -0
  61. package/dist/components/core/list/SolidCustomListViewColumn.d.ts.map +1 -0
  62. package/dist/components/core/list/SolidCustomListViewColumn.js +47 -0
  63. package/dist/components/core/list/SolidCustomListViewColumn.js.map +1 -0
  64. package/dist/components/core/list/SolidCustomListViewColumn.tsx +57 -0
  65. package/dist/components/core/list/SolidListView.d.ts +0 -6
  66. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  67. package/dist/components/core/list/SolidListView.js +12 -89
  68. package/dist/components/core/list/SolidListView.js.map +1 -1
  69. package/dist/components/core/list/SolidListView.tsx +17 -95
  70. package/dist/components/core/model/CreateModel.css +1 -0
  71. package/dist/components/core/module/CreateModule.css +1 -0
  72. package/dist/components/core/module/CreateModule.js +1 -1
  73. package/dist/components/core/module/CreateModule.js.map +1 -1
  74. package/dist/components/core/module/CreateModule.tsx +1 -1
  75. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  76. package/dist/components/core/tree/SolidTreeView.js +135 -41
  77. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  78. package/dist/components/core/tree/SolidTreeView.tsx +96 -34
  79. package/dist/constants/error-messages.d.ts +1 -0
  80. package/dist/constants/error-messages.d.ts.map +1 -1
  81. package/dist/constants/error-messages.js +1 -0
  82. package/dist/constants/error-messages.js.map +1 -1
  83. package/dist/constants/error-messages.ts +2 -0
  84. package/dist/http/solidHttp.d.ts.map +1 -1
  85. package/dist/http/solidHttp.js +28 -16
  86. package/dist/http/solidHttp.js.map +1 -1
  87. package/dist/http/solidHttp.ts +7 -1
  88. package/dist/redux/api/fetchBaseQuery.d.ts.map +1 -1
  89. package/dist/redux/api/fetchBaseQuery.js +25 -19
  90. package/dist/redux/api/fetchBaseQuery.js.map +1 -1
  91. package/dist/redux/api/fetchBaseQuery.tsx +5 -0
  92. package/dist/redux/api/solidChatterMessageApi.d.ts +2 -2
  93. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  94. package/dist/redux/api/solidChatterMessageApi.js +3 -3
  95. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  96. package/dist/redux/api/solidChatterMessageApi.ts +3 -3
  97. package/dist/redux/store/defaultStoreConfig.d.ts +1 -1
  98. package/dist/resources/solid-custom.css +5 -1
  99. package/dist/routes/pages/admin/core/DashboardPage.module.css +4 -0
  100. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SolidChangePassword.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ChangeEventHandler, FocusEventHandler, useMemo, useState } from \"react\";\nimport { useFormik } from \"formik\";\nimport * as Yup from \"yup\";\nimport { handleLogout } from \"../../../../adapters/auth/handleLogout\";\nimport { env } from \"../../../../adapters/env\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { useSession } from \"../../../../hooks/useSession\";\nimport { useChangePasswordMutation } from \"../../../../redux/api/authApi\";\nimport { SolidPasswordHelperText } from \"../SolidPasswordHelperText\";\nimport { SolidButton } from \"../../../shad-cn-ui/SolidButton\";\nimport styles from \"./SolidAccountSettings.module.css\";\n\ntype ToastState = {\n id: number;\n severity: \"success\" | \"error\" | \"info\" | \"warn\";\n summary: string;\n detail: string;\n sticky?: boolean;\n life?: number;\n} | null;\n\nconst ToastMessage = ({ toast, onClose }: { toast: ToastState; onClose: () => void }) => {\n if (!toast) return null;\n const severityClass =\n toast.severity === \"error\"\n ? styles.toastError\n : toast.severity === \"success\"\n ? styles.toastSuccess\n : toast.severity === \"warn\"\n ? styles.toastWarn\n : styles.toastInfo;\n\n return (\n <div className={`${styles.toast} ${severityClass}`} role=\"status\" aria-live=\"polite\">\n <div>\n <div className={styles.toastTitle}>{toast.summary}</div>\n <div className={styles.toastBody}>{toast.detail}</div>\n </div>\n <button type=\"button\" className={styles.toastClose} onClick={onClose} aria-label=\"Close notification\">\n ×\n </button>\n </div>\n );\n};\n\nconst PasswordInput = ({\n id,\n name,\n value,\n onChange,\n onBlur,\n placeholder,\n}: {\n id: string;\n name: string;\n value: string;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onBlur: FocusEventHandler<HTMLInputElement>;\n placeholder?: string;\n}) => {\n const [visible, setVisible] = useState(false);\n return (\n <div className={styles.passwordWrap}>\n <input\n id={id}\n name={name}\n type={visible ? \"text\" : \"password\"}\n className={styles.input}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n />\n <button\n type=\"button\"\n className={styles.passwordToggle}\n onClick={() => setVisible((prev) => !prev)}\n aria-label={visible ? \"Hide password\" : \"Show password\"}\n >\n {visible ? \"Hide\" : \"Show\"}\n </button>\n </div>\n );\n};\n\nexport const SolidChangePassword = ({ solidSettingsData }: any) => {\n const [toast, setToast] = useState<ToastState>(null);\n const [changePassword] = useChangePasswordMutation();\n const session: any = useSession();\n\n const notify = (\n severity: \"success\" | \"error\" | \"info\" | \"warn\",\n summary: string,\n detail: string,\n opts?: { sticky?: boolean; life?: number }\n ) => {\n setToast({\n id: Date.now(),\n severity,\n summary,\n detail,\n sticky: opts?.sticky,\n life: opts?.life ?? 3000,\n });\n };\n\n const envPasswordRegex = env(\"NEXT_PUBLIC_PASSWORD_REGEX\");\n\n const effectiveRegex = useMemo(() => {\n try {\n const backendRegex = solidSettingsData?.data?.authenticationPasswordRegex;\n if (backendRegex) return new RegExp(backendRegex);\n if (envPasswordRegex) {\n const unescaped = JSON.parse(`\"${envPasswordRegex}\"`);\n return new RegExp(unescaped);\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.INVALID_PASSWORD_REGX, error);\n }\n return null;\n }, [solidSettingsData, envPasswordRegex]);\n\n const validationSchema = useMemo(() => {\n const newPasswordValidation = effectiveRegex\n ? Yup.string()\n .matches(\n effectiveRegex,\n solidSettingsData?.data?.authenticationPasswordRegexErrorMessage || ERROR_MESSAGES.PASSWORD_DO_NOT_MEET\n )\n .required(ERROR_MESSAGES.FIELD_REUQIRED(\"New password\"))\n : Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).required(ERROR_MESSAGES.FIELD_REUQIRED(\"New password\"));\n\n return Yup.object({\n email: Yup.string().email(ERROR_MESSAGES.FIELD_INAVLID_FORMAT(\"email\")).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Email\")),\n currentPassword: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Current password\")),\n newPassword: newPasswordValidation,\n confirmPassword: Yup.string().oneOf([Yup.ref(\"newPassword\")], ERROR_MESSAGES.MUST_MATCH).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Confirm password\")),\n id: Yup.number().required(ERROR_MESSAGES.FIELD_INAVLID_FORMAT(\"User ID\")),\n });\n }, [effectiveRegex, solidSettingsData]);\n\n const formik = useFormik({\n initialValues: {\n email: session?.data?.user?.email,\n currentPassword: \"\",\n newPassword: \"\",\n confirmPassword: \"\",\n id: session?.data?.user?.id,\n },\n validationSchema,\n onSubmit: async (values, { setErrors, resetForm }) => {\n try {\n const payload = {\n id: values.id,\n email: session?.data?.user?.email,\n currentPassword: values.currentPassword,\n newPassword: values.newPassword,\n };\n\n const response = await changePassword(payload).unwrap();\n if (response?.error) {\n notify(\"error\", ERROR_MESSAGES.ERROR, response.error);\n setErrors({\n currentPassword: ERROR_MESSAGES.INCORRECT_CURRENT,\n newPassword: ERROR_MESSAGES.MUST_MATCH,\n confirmPassword: ERROR_MESSAGES.MUST_MATCH,\n });\n return;\n }\n\n notify(\"success\", ERROR_MESSAGES.PASSWORD_CHANGE, ERROR_MESSAGES.PASSWORD_CHANGE);\n resetForm();\n handleLogout();\n } catch (err: any) {\n notify(\"error\", err?.data?.message || ERROR_MESSAGES.ERROR, err?.data?.data?.message || err?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG);\n }\n },\n });\n\n const fieldError = (field: string) => {\n if (!formik.touched[field as keyof typeof formik.touched]) return null;\n const error = formik.errors[field as keyof typeof formik.errors];\n return typeof error === \"string\" ? error : null;\n };\n\n return (\n <form onSubmit={formik.handleSubmit} className={styles.accountForm}>\n <ToastMessage toast={toast} onClose={() => setToast(null)} />\n\n <div className={styles.accountScroll}>\n <div className={styles.formStack}>\n <div className={styles.field}>\n <label htmlFor=\"currentPassword\">Current Password</label>\n <PasswordInput\n id=\"currentPassword\"\n name=\"currentPassword\"\n value={formik.values.currentPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"currentPassword\") ? <p className={styles.errorText}>{fieldError(\"currentPassword\")}</p> : null}\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"newPassword\">New Password</label>\n <PasswordInput\n id=\"newPassword\"\n name=\"newPassword\"\n value={formik.values.newPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"newPassword\") ? <p className={styles.errorText}>{fieldError(\"newPassword\")}</p> : null}\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"confirmPassword\">Confirm New Password</label>\n <PasswordInput\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"confirmPassword\") ? <p className={styles.errorText}>{fieldError(\"confirmPassword\")}</p> : null}\n </div>\n </div>\n\n <div className={styles.passwordHintWrap}>\n <SolidPasswordHelperText text={solidSettingsData?.data?.authenticationPasswordComplexityDescription} />\n </div>\n </div>\n\n <div className={styles.footerActions}>\n <SolidButton type=\"submit\" size=\"sm\" loading={formik.isSubmitting}>\n Change Password\n </SolidButton>\n </div>\n </form>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidChangePassword.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ChangeEventHandler, FocusEventHandler, useMemo, useState } from \"react\";\nimport { useFormik } from \"formik\";\nimport * as Yup from \"yup\";\nimport { handleLogout } from \"../../../../adapters/auth/handleLogout\";\nimport { env } from \"../../../../adapters/env\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { useSession } from \"../../../../hooks/useSession\";\nimport { useChangePasswordMutation } from \"../../../../redux/api/authApi\";\nimport { SolidPasswordHelperText } from \"../SolidPasswordHelperText\";\nimport { SolidButton } from \"../../../shad-cn-ui/SolidButton\";\nimport styles from \"./SolidAccountSettings.module.css\";\n\ntype ToastState = {\n id: number;\n severity: \"success\" | \"error\" | \"info\" | \"warn\";\n summary: string;\n detail: string;\n sticky?: boolean;\n life?: number;\n} | null;\n\nconst ToastMessage = ({ toast, onClose }: { toast: ToastState; onClose: () => void }) => {\n if (!toast) return null;\n const severityClass =\n toast.severity === \"error\"\n ? styles.toastError\n : toast.severity === \"success\"\n ? styles.toastSuccess\n : toast.severity === \"warn\"\n ? styles.toastWarn\n : styles.toastInfo;\n\n return (\n <div className={`${styles.toast} ${severityClass}`} role=\"status\" aria-live=\"polite\">\n <div>\n <div className={styles.toastTitle}>{toast.summary}</div>\n <div className={styles.toastBody}>{toast.detail}</div>\n </div>\n <button type=\"button\" className={styles.toastClose} onClick={onClose} aria-label=\"Close notification\">\n ×\n </button>\n </div>\n );\n};\n\nconst PasswordInput = ({\n id,\n name,\n value,\n onChange,\n onBlur,\n placeholder,\n}: {\n id: string;\n name: string;\n value: string;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onBlur: FocusEventHandler<HTMLInputElement>;\n placeholder?: string;\n}) => {\n const [visible, setVisible] = useState(false);\n return (\n <div className={styles.passwordWrap}>\n <input\n id={id}\n name={name}\n type={visible ? \"text\" : \"password\"}\n className={styles.input}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n />\n <button\n type=\"button\"\n className={styles.passwordToggle}\n onClick={() => setVisible((prev) => !prev)}\n aria-label={visible ? \"Hide password\" : \"Show password\"}\n >\n {visible ? \"Hide\" : \"Show\"}\n </button>\n </div>\n );\n};\n\nexport const SolidChangePassword = ({ solidSettingsData }: any) => {\n const [toast, setToast] = useState<ToastState>(null);\n const [changePassword] = useChangePasswordMutation();\n const session: any = useSession();\n\n const notify = (\n severity: \"success\" | \"error\" | \"info\" | \"warn\",\n summary: string,\n detail: string,\n opts?: { sticky?: boolean; life?: number }\n ) => {\n setToast({\n id: Date.now(),\n severity,\n summary,\n detail,\n sticky: opts?.sticky,\n life: opts?.life ?? 3000,\n });\n };\n\n const envPasswordRegex = env(\"NEXT_PUBLIC_PASSWORD_REGEX\");\n\n const effectiveRegex = useMemo(() => {\n try {\n const backendRegex = solidSettingsData?.data?.authenticationPasswordRegex;\n if (backendRegex) return new RegExp(backendRegex);\n if (envPasswordRegex) {\n const unescaped = JSON.parse(`\"${envPasswordRegex}\"`);\n return new RegExp(unescaped);\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.INVALID_PASSWORD_REGX, error);\n }\n return null;\n }, [solidSettingsData, envPasswordRegex]);\n\n const validationSchema = useMemo(() => {\n const newPasswordValidation = effectiveRegex\n ? Yup.string()\n .matches(\n effectiveRegex,\n solidSettingsData?.data?.authenticationPasswordRegexErrorMessage || ERROR_MESSAGES.PASSWORD_DO_NOT_MEET\n )\n .required(ERROR_MESSAGES.FIELD_REUQIRED(\"New password\"))\n : Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).required(ERROR_MESSAGES.FIELD_REUQIRED(\"New password\"));\n\n return Yup.object({\n email: Yup.string().email(ERROR_MESSAGES.FIELD_INAVLID_FORMAT(\"email\")).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Email\")),\n currentPassword: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Current password\")),\n newPassword: newPasswordValidation,\n confirmPassword: Yup.string().oneOf([Yup.ref(\"newPassword\")], ERROR_MESSAGES.MUST_MATCH).required(ERROR_MESSAGES.FIELD_REUQIRED(\"Confirm password\")),\n id: Yup.number().required(ERROR_MESSAGES.FIELD_INAVLID_FORMAT(\"User ID\")),\n });\n }, [effectiveRegex, solidSettingsData]);\n\n const formik = useFormik({\n initialValues: {\n email: session?.data?.user?.email,\n currentPassword: \"\",\n newPassword: \"\",\n confirmPassword: \"\",\n id: session?.data?.user?.id,\n },\n validationSchema,\n onSubmit: async (values, { setErrors, resetForm }) => {\n try {\n const payload = {\n id: values.id,\n email: session?.data?.user?.email,\n currentPassword: values.currentPassword,\n newPassword: values.newPassword,\n };\n\n const response = await changePassword(payload).unwrap();\n if (response?.error) {\n notify(\"error\", ERROR_MESSAGES.ERROR, response.error);\n setErrors({\n currentPassword: ERROR_MESSAGES.INCORRECT_CURRENT,\n newPassword: ERROR_MESSAGES.MUST_MATCH,\n confirmPassword: ERROR_MESSAGES.MUST_MATCH,\n });\n return;\n }\n\n notify(\"success\", ERROR_MESSAGES.PASSWORD_CHANGE, ERROR_MESSAGES.PASSWORD_CHANGE);\n resetForm();\n handleLogout();\n } catch (err: any) {\n notify(\"error\", err?.data?.message || ERROR_MESSAGES.ERROR, err?.data?.data?.message || err?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG);\n }\n },\n });\n\n const fieldError = (field: string) => {\n if (!formik.touched[field as keyof typeof formik.touched]) return null;\n const error = formik.errors[field as keyof typeof formik.errors];\n return typeof error === \"string\" ? error : null;\n };\n\n const isChangePasswordDisabled = !formik.dirty || !formik.isValid || formik.isSubmitting;\n\n return (\n <form onSubmit={formik.handleSubmit} className={styles.accountForm}>\n <ToastMessage toast={toast} onClose={() => setToast(null)} />\n\n <div className={styles.accountScroll}>\n <div className={styles.formStack}>\n <div className={styles.field}>\n <label htmlFor=\"currentPassword\">Current Password</label>\n <PasswordInput\n id=\"currentPassword\"\n name=\"currentPassword\"\n value={formik.values.currentPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"currentPassword\") ? <p className={styles.errorText}>{fieldError(\"currentPassword\")}</p> : null}\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"newPassword\">New Password</label>\n <PasswordInput\n id=\"newPassword\"\n name=\"newPassword\"\n value={formik.values.newPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"newPassword\") ? <p className={styles.errorText}>{fieldError(\"newPassword\")}</p> : null}\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"confirmPassword\">Confirm New Password</label>\n <PasswordInput\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n />\n {fieldError(\"confirmPassword\") ? <p className={styles.errorText}>{fieldError(\"confirmPassword\")}</p> : null}\n </div>\n </div>\n\n <div className={styles.passwordHintWrap}>\n <SolidPasswordHelperText text={solidSettingsData?.data?.authenticationPasswordComplexityDescription} />\n </div>\n </div>\n\n <div className={styles.footerActions}>\n <SolidButton type=\"submit\" size=\"sm\" loading={formik.isSubmitting} disabled={isChangePasswordDisabled}>\n Change Password\n </SolidButton>\n </div>\n </form>\n );\n};\n"]}
@@ -183,6 +183,8 @@ export const SolidChangePassword = ({ solidSettingsData }: any) => {
183
183
  return typeof error === "string" ? error : null;
184
184
  };
185
185
 
186
+ const isChangePasswordDisabled = !formik.dirty || !formik.isValid || formik.isSubmitting;
187
+
186
188
  return (
187
189
  <form onSubmit={formik.handleSubmit} className={styles.accountForm}>
188
190
  <ToastMessage toast={toast} onClose={() => setToast(null)} />
@@ -232,7 +234,7 @@ export const SolidChangePassword = ({ solidSettingsData }: any) => {
232
234
  </div>
233
235
 
234
236
  <div className={styles.footerActions}>
235
- <SolidButton type="submit" size="sm" loading={formik.isSubmitting}>
237
+ <SolidButton type="submit" size="sm" loading={formik.isSubmitting} disabled={isChangePasswordDisabled}>
236
238
  Change Password
237
239
  </SolidButton>
238
240
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidPersonalInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx"],"names":[],"mappings":"AAgFA,eAAO,MAAM,iBAAiB,+CA6Q7B,CAAC"}
1
+ {"version":3,"file":"SolidPersonalInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx"],"names":[],"mappings":"AAgFA,eAAO,MAAM,iBAAiB,+CA8Q7B,CAAC"}
@@ -153,6 +153,7 @@ export var SolidPersonalInfo = function () {
153
153
  }, [initials]);
154
154
  var liveAvatarUrl = previewImage || ((_e = (_d = (_c = (_b = userData === null || userData === void 0 ? void 0 : userData.data) === null || _b === void 0 ? void 0 : _b._media) === null || _c === void 0 ? void 0 : _c.profilePicture) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e._full_url) || null;
155
155
  var roleLabels = ((_g = (_f = userData === null || userData === void 0 ? void 0 : userData.data) === null || _f === void 0 ? void 0 : _f.roles) === null || _g === void 0 ? void 0 : _g.map(function (role) { return role.name; })) || [];
156
+ var isSaveDisabled = !formik.dirty || formik.isSubmitting;
156
157
  var handleFileChange = function (file) {
157
158
  var _a, _b, _c;
158
159
  var existing = (_c = (_b = (_a = userData === null || userData === void 0 ? void 0 : userData.data) === null || _a === void 0 ? void 0 : _a._media) === null || _b === void 0 ? void 0 : _b.profilePicture) === null || _c === void 0 ? void 0 : _c[0];
@@ -245,7 +246,7 @@ export var SolidPersonalInfo = function () {
245
246
  if (file)
246
247
  handleFileChange(file);
247
248
  event.currentTarget.value = "";
248
- } })] }), _jsx("div", { className: styles.dashedDivider }), _jsx("div", { className: styles.sectionTitle, children: "Details" }), _jsxs("div", { className: styles.grid, children: [_jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "fullName", children: "Name" }), _jsx("input", { id: "fullName", name: "fullName", value: formik.values.fullName, onChange: formik.handleChange, className: styles.input })] }), _jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "email", children: "Email" }), _jsx("input", { id: "email", disabled: true, value: ((_h = userData === null || userData === void 0 ? void 0 : userData.data) === null || _h === void 0 ? void 0 : _h.email) || "", className: styles.input })] }), _jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "mobile", children: "Contact Number" }), _jsx("input", { id: "mobile", disabled: true, value: ((_j = userData === null || userData === void 0 ? void 0 : userData.data) === null || _j === void 0 ? void 0 : _j.mobile) || "", className: styles.input })] }), _jsxs("div", { className: styles.field, children: [_jsx("label", { children: "Role" }), _jsx("div", { className: styles.roleBox, children: roleLabels.map(function (name) { return (_jsx("span", { className: styles.roleChip, children: name }, name)); }) })] })] })] }), _jsx("div", { className: styles.footerActions, children: _jsx(SolidButton, { type: "submit", size: "sm", loading: formik.isSubmitting, children: "Save" }) })] }), _jsx(ConfirmDialog, { visible: replaceDialogVisible, title: "Replace Profile Picture", text: "Do you want to replace the existing profile picture?", onConfirm: confirmReplace, onCancel: function () {
249
+ } })] }), _jsx("div", { className: styles.dashedDivider }), _jsx("div", { className: styles.sectionTitle, children: "Details" }), _jsxs("div", { className: styles.grid, children: [_jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "fullName", children: "Name" }), _jsx("input", { id: "fullName", name: "fullName", value: formik.values.fullName, onChange: formik.handleChange, className: styles.input })] }), _jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "email", children: "Email" }), _jsx("input", { id: "email", disabled: true, value: ((_h = userData === null || userData === void 0 ? void 0 : userData.data) === null || _h === void 0 ? void 0 : _h.email) || "", className: styles.input })] }), _jsxs("div", { className: styles.field, children: [_jsx("label", { htmlFor: "mobile", children: "Contact Number" }), _jsx("input", { id: "mobile", disabled: true, value: ((_j = userData === null || userData === void 0 ? void 0 : userData.data) === null || _j === void 0 ? void 0 : _j.mobile) || "", className: styles.input })] }), _jsxs("div", { className: styles.field, children: [_jsx("label", { children: "Role" }), _jsx("div", { className: styles.roleBox, children: roleLabels.map(function (name) { return (_jsx("span", { className: styles.roleChip, children: name }, name)); }) })] })] })] }), _jsx("div", { className: styles.footerActions, children: _jsx(SolidButton, { type: "submit", size: "sm", loading: formik.isSubmitting, disabled: isSaveDisabled, children: "Save" }) })] }), _jsx(ConfirmDialog, { visible: replaceDialogVisible, title: "Replace Profile Picture", text: "Do you want to replace the existing profile picture?", onConfirm: confirmReplace, onCancel: function () {
249
250
  setReplaceDialogVisible(false);
250
251
  setPendingFile(null);
251
252
  } }), _jsx(ConfirmDialog, { visible: deleteDialogVisible, title: "Delete Profile Picture", text: "Do you want to delete your profile picture?", onConfirm: confirmDelete, onCancel: function () { return setDeleteDialogVisible(false); } })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"SolidPersonalInfo.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useMemo, useRef, useState } from \"react\";\nimport { useFormik } from \"formik\";\nimport { useDeleteMediaMutation } from \"../../../../redux/api/mediaApi\";\nimport { useGetUserQuery, useUpdateUserProfileMutation } from \"../../../../redux/api/userApi\";\nimport { useSession } from \"../../../../hooks/useSession\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { SolidButton } from \"../../../shad-cn-ui/SolidButton\";\nimport styles from \"./SolidAccountSettings.module.css\";\n\ntype ToastState = {\n id: number;\n severity: \"success\" | \"error\" | \"info\" | \"warn\";\n summary: string;\n detail: string;\n sticky?: boolean;\n life?: number;\n} | null;\n\nconst ToastMessage = ({ toast, onClose }: { toast: ToastState; onClose: () => void }) => {\n if (!toast) return null;\n const severityClass =\n toast.severity === \"error\"\n ? styles.toastError\n : toast.severity === \"success\"\n ? styles.toastSuccess\n : toast.severity === \"warn\"\n ? styles.toastWarn\n : styles.toastInfo;\n\n return (\n <div className={`${styles.toast} ${severityClass}`} role=\"status\" aria-live=\"polite\">\n <div>\n <div className={styles.toastTitle}>{toast.summary}</div>\n <div className={styles.toastBody}>{toast.detail}</div>\n </div>\n <button type=\"button\" className={styles.toastClose} onClick={onClose} aria-label=\"Close notification\">\n ×\n </button>\n </div>\n );\n};\n\nconst ConfirmDialog = ({\n visible,\n title,\n text,\n onConfirm,\n onCancel,\n}: {\n visible: boolean;\n title: string;\n text: string;\n onConfirm: () => void;\n onCancel: () => void;\n}) => {\n if (!visible) return null;\n return (\n <div className={styles.confirmBackdrop} role=\"presentation\" onClick={onCancel}>\n <div\n className={styles.confirmModal}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n onClick={(event) => event.stopPropagation()}\n >\n <div className={styles.confirmHeader}>{title}</div>\n <div className={styles.confirmBody}>{text}</div>\n <div className={styles.confirmActions}>\n <SolidButton size=\"sm\" variant=\"destructive\" onClick={onConfirm}>\n Confirm\n </SolidButton>\n <SolidButton size=\"sm\" variant=\"outline\" onClick={onCancel}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n );\n};\n\nexport const SolidPersonalInfo = () => {\n const fileInputRef = useRef<HTMLInputElement>(null);\n const [toast, setToast] = useState<ToastState>(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 } = useSession();\n const userId = session?.user?.id;\n\n const { data: userData, refetch } = useGetUserQuery(userId, { skip: !userId });\n const [deleteMedia] = useDeleteMediaMutation();\n const [updateUser] = useUpdateUserProfileMutation();\n\n const notify = (\n severity: \"success\" | \"error\" | \"info\" | \"warn\",\n summary: string,\n detail: string,\n opts?: { sticky?: boolean; life?: number }\n ) => {\n setToast({\n id: Date.now(),\n severity,\n summary,\n detail,\n sticky: opts?.sticky,\n life: opts?.life ?? 3000,\n });\n };\n\n const initialValues = useMemo(\n () => ({\n fullName: userData?.data?.fullName ?? \"\",\n profilePicture: userData?.data?._media?.profilePicture?.[0]?._full_url ?? null,\n }),\n [userData]\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 if (values.profilePicture && values.profilePicture instanceof File) {\n formData.append(\"profilePicture\", values.profilePicture);\n }\n\n if (!formData.has(\"fullName\") && !formData.has(\"profilePicture\")) {\n notify(\"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 notify(\"success\", ERROR_MESSAGES.PROFILE_SAVED, ERROR_MESSAGES.PROFILE_SAVED_SUCCESSFULLY);\n refetch();\n formik.resetForm();\n setPreviewImage(null);\n } else {\n notify(\"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_UPDATED_PROFILE);\n }\n } catch {\n notify(\"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.SOMETHING_WRONG);\n }\n },\n });\n\n const initials = useMemo(() => {\n const value = userData?.data?.email || \"\";\n if (!value) return \"U\";\n const email = value.includes(\"@\") ? value.split(\"@\")[0] : value;\n return email[0]?.toUpperCase() || \"U\";\n }, [userData]);\n\n const avatarBg = useMemo(() => {\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 }, [initials]);\n\n const liveAvatarUrl = previewImage || userData?.data?._media?.profilePicture?.[0]?._full_url || null;\n const roleLabels = userData?.data?.roles?.map((role: any) => role.name) || [];\n\n const handleFileChange = (file: File) => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n if (existing) {\n setPendingFile(file);\n setReplaceDialogVisible(true);\n return;\n }\n formik.setFieldValue(\"profilePicture\", file);\n setPreviewImage(URL.createObjectURL(file));\n };\n\n const handleDeleteAvatar = () => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n if (existing) {\n setDeleteDialogVisible(true);\n return;\n }\n formik.setFieldValue(\"profilePicture\", null);\n setPreviewImage(null);\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 if (pendingFile) {\n formik.setFieldValue(\"profilePicture\", pendingFile);\n setPreviewImage(URL.createObjectURL(pendingFile));\n setTimeout(() => {\n formik.submitForm();\n }, 0);\n }\n } catch {\n notify(\"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_DELETED_IMAGE);\n } finally {\n setReplaceDialogVisible(false);\n setPendingFile(null);\n }\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 notify(\"success\", ERROR_MESSAGES.DELETED, ERROR_MESSAGES.PROFILE_PICTURE_REMOVE);\n refetch();\n } catch {\n notify(\"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 <>\n <form onSubmit={formik.handleSubmit} className={styles.accountForm}>\n <ToastMessage toast={toast} onClose={() => setToast(null)} />\n\n <div className={styles.accountScroll}>\n <div className={styles.sectionTitle}>Profile Picture</div>\n\n <div className={styles.avatarRow}>\n <div className={styles.avatarShell}>\n {liveAvatarUrl ? (\n <img src={liveAvatarUrl} alt=\"Profile\" className={styles.avatarImage} />\n ) : (\n <span className={styles.avatarFallback} style={{ backgroundColor: avatarBg }}>\n {initials}\n </span>\n )}\n\n {liveAvatarUrl ? (\n <button\n type=\"button\"\n className={styles.avatarRemove}\n onClick={handleDeleteAvatar}\n aria-label=\"Delete profile picture\"\n >\n ×\n </button>\n ) : null}\n </div>\n\n <SolidButton\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n className={styles.accountSecondaryBtn}\n onClick={() => fileInputRef.current?.click()}\n >\n Upload Avatar\n </SolidButton>\n\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".jpg,.jpeg,.png,.svg\"\n hidden\n onChange={(event) => {\n const file = event.target.files?.[0];\n if (file) handleFileChange(file);\n event.currentTarget.value = \"\";\n }}\n />\n </div>\n\n <div className={styles.dashedDivider} />\n\n <div className={styles.sectionTitle}>Details</div>\n <div className={styles.grid}>\n <div className={styles.field}>\n <label htmlFor=\"fullName\">Name</label>\n <input\n id=\"fullName\"\n name=\"fullName\"\n value={formik.values.fullName}\n onChange={formik.handleChange}\n className={styles.input}\n />\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"email\">Email</label>\n <input id=\"email\" disabled value={userData?.data?.email || \"\"} className={styles.input} />\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"mobile\">Contact Number</label>\n <input id=\"mobile\" disabled value={userData?.data?.mobile || \"\"} className={styles.input} />\n </div>\n\n <div className={styles.field}>\n <label>Role</label>\n <div className={styles.roleBox}>\n {roleLabels.map((name: string) => (\n <span key={name} className={styles.roleChip}>\n {name}\n </span>\n ))}\n </div>\n </div>\n </div>\n </div>\n\n <div className={styles.footerActions}>\n <SolidButton type=\"submit\" size=\"sm\" loading={formik.isSubmitting}>\n Save\n </SolidButton>\n </div>\n </form>\n\n <ConfirmDialog\n visible={replaceDialogVisible}\n title=\"Replace Profile Picture\"\n text=\"Do you want to replace the existing profile picture?\"\n onConfirm={confirmReplace}\n onCancel={() => {\n setReplaceDialogVisible(false);\n setPendingFile(null);\n }}\n />\n\n <ConfirmDialog\n visible={deleteDialogVisible}\n title=\"Delete Profile Picture\"\n text=\"Do you want to delete your profile picture?\"\n onConfirm={confirmDelete}\n onCancel={() => setDeleteDialogVisible(false)}\n />\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidPersonalInfo.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useMemo, useRef, useState } from \"react\";\nimport { useFormik } from \"formik\";\nimport { useDeleteMediaMutation } from \"../../../../redux/api/mediaApi\";\nimport { useGetUserQuery, useUpdateUserProfileMutation } from \"../../../../redux/api/userApi\";\nimport { useSession } from \"../../../../hooks/useSession\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { SolidButton } from \"../../../shad-cn-ui/SolidButton\";\nimport styles from \"./SolidAccountSettings.module.css\";\n\ntype ToastState = {\n id: number;\n severity: \"success\" | \"error\" | \"info\" | \"warn\";\n summary: string;\n detail: string;\n sticky?: boolean;\n life?: number;\n} | null;\n\nconst ToastMessage = ({ toast, onClose }: { toast: ToastState; onClose: () => void }) => {\n if (!toast) return null;\n const severityClass =\n toast.severity === \"error\"\n ? styles.toastError\n : toast.severity === \"success\"\n ? styles.toastSuccess\n : toast.severity === \"warn\"\n ? styles.toastWarn\n : styles.toastInfo;\n\n return (\n <div className={`${styles.toast} ${severityClass}`} role=\"status\" aria-live=\"polite\">\n <div>\n <div className={styles.toastTitle}>{toast.summary}</div>\n <div className={styles.toastBody}>{toast.detail}</div>\n </div>\n <button type=\"button\" className={styles.toastClose} onClick={onClose} aria-label=\"Close notification\">\n ×\n </button>\n </div>\n );\n};\n\nconst ConfirmDialog = ({\n visible,\n title,\n text,\n onConfirm,\n onCancel,\n}: {\n visible: boolean;\n title: string;\n text: string;\n onConfirm: () => void;\n onCancel: () => void;\n}) => {\n if (!visible) return null;\n return (\n <div className={styles.confirmBackdrop} role=\"presentation\" onClick={onCancel}>\n <div\n className={styles.confirmModal}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n onClick={(event) => event.stopPropagation()}\n >\n <div className={styles.confirmHeader}>{title}</div>\n <div className={styles.confirmBody}>{text}</div>\n <div className={styles.confirmActions}>\n <SolidButton size=\"sm\" variant=\"destructive\" onClick={onConfirm}>\n Confirm\n </SolidButton>\n <SolidButton size=\"sm\" variant=\"outline\" onClick={onCancel}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n );\n};\n\nexport const SolidPersonalInfo = () => {\n const fileInputRef = useRef<HTMLInputElement>(null);\n const [toast, setToast] = useState<ToastState>(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 } = useSession();\n const userId = session?.user?.id;\n\n const { data: userData, refetch } = useGetUserQuery(userId, { skip: !userId });\n const [deleteMedia] = useDeleteMediaMutation();\n const [updateUser] = useUpdateUserProfileMutation();\n\n const notify = (\n severity: \"success\" | \"error\" | \"info\" | \"warn\",\n summary: string,\n detail: string,\n opts?: { sticky?: boolean; life?: number }\n ) => {\n setToast({\n id: Date.now(),\n severity,\n summary,\n detail,\n sticky: opts?.sticky,\n life: opts?.life ?? 3000,\n });\n };\n\n const initialValues = useMemo(\n () => ({\n fullName: userData?.data?.fullName ?? \"\",\n profilePicture: userData?.data?._media?.profilePicture?.[0]?._full_url ?? null,\n }),\n [userData]\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 if (values.profilePicture && values.profilePicture instanceof File) {\n formData.append(\"profilePicture\", values.profilePicture);\n }\n\n if (!formData.has(\"fullName\") && !formData.has(\"profilePicture\")) {\n notify(\"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 notify(\"success\", ERROR_MESSAGES.PROFILE_SAVED, ERROR_MESSAGES.PROFILE_SAVED_SUCCESSFULLY);\n refetch();\n formik.resetForm();\n setPreviewImage(null);\n } else {\n notify(\"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_UPDATED_PROFILE);\n }\n } catch {\n notify(\"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.SOMETHING_WRONG);\n }\n },\n });\n\n const initials = useMemo(() => {\n const value = userData?.data?.email || \"\";\n if (!value) return \"U\";\n const email = value.includes(\"@\") ? value.split(\"@\")[0] : value;\n return email[0]?.toUpperCase() || \"U\";\n }, [userData]);\n\n const avatarBg = useMemo(() => {\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 }, [initials]);\n\n const liveAvatarUrl = previewImage || userData?.data?._media?.profilePicture?.[0]?._full_url || null;\n const roleLabels = userData?.data?.roles?.map((role: any) => role.name) || [];\n const isSaveDisabled = !formik.dirty || formik.isSubmitting;\n\n const handleFileChange = (file: File) => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n if (existing) {\n setPendingFile(file);\n setReplaceDialogVisible(true);\n return;\n }\n formik.setFieldValue(\"profilePicture\", file);\n setPreviewImage(URL.createObjectURL(file));\n };\n\n const handleDeleteAvatar = () => {\n const existing = userData?.data?._media?.profilePicture?.[0];\n if (existing) {\n setDeleteDialogVisible(true);\n return;\n }\n formik.setFieldValue(\"profilePicture\", null);\n setPreviewImage(null);\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 if (pendingFile) {\n formik.setFieldValue(\"profilePicture\", pendingFile);\n setPreviewImage(URL.createObjectURL(pendingFile));\n setTimeout(() => {\n formik.submitForm();\n }, 0);\n }\n } catch {\n notify(\"error\", ERROR_MESSAGES.FAILED, ERROR_MESSAGES.FAILED_DELETED_IMAGE);\n } finally {\n setReplaceDialogVisible(false);\n setPendingFile(null);\n }\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 notify(\"success\", ERROR_MESSAGES.DELETED, ERROR_MESSAGES.PROFILE_PICTURE_REMOVE);\n refetch();\n } catch {\n notify(\"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 <>\n <form onSubmit={formik.handleSubmit} className={styles.accountForm}>\n <ToastMessage toast={toast} onClose={() => setToast(null)} />\n\n <div className={styles.accountScroll}>\n <div className={styles.sectionTitle}>Profile Picture</div>\n\n <div className={styles.avatarRow}>\n <div className={styles.avatarShell}>\n {liveAvatarUrl ? (\n <img src={liveAvatarUrl} alt=\"Profile\" className={styles.avatarImage} />\n ) : (\n <span className={styles.avatarFallback} style={{ backgroundColor: avatarBg }}>\n {initials}\n </span>\n )}\n\n {liveAvatarUrl ? (\n <button\n type=\"button\"\n className={styles.avatarRemove}\n onClick={handleDeleteAvatar}\n aria-label=\"Delete profile picture\"\n >\n ×\n </button>\n ) : null}\n </div>\n\n <SolidButton\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n className={styles.accountSecondaryBtn}\n onClick={() => fileInputRef.current?.click()}\n >\n Upload Avatar\n </SolidButton>\n\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".jpg,.jpeg,.png,.svg\"\n hidden\n onChange={(event) => {\n const file = event.target.files?.[0];\n if (file) handleFileChange(file);\n event.currentTarget.value = \"\";\n }}\n />\n </div>\n\n <div className={styles.dashedDivider} />\n\n <div className={styles.sectionTitle}>Details</div>\n <div className={styles.grid}>\n <div className={styles.field}>\n <label htmlFor=\"fullName\">Name</label>\n <input\n id=\"fullName\"\n name=\"fullName\"\n value={formik.values.fullName}\n onChange={formik.handleChange}\n className={styles.input}\n />\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"email\">Email</label>\n <input id=\"email\" disabled value={userData?.data?.email || \"\"} className={styles.input} />\n </div>\n\n <div className={styles.field}>\n <label htmlFor=\"mobile\">Contact Number</label>\n <input id=\"mobile\" disabled value={userData?.data?.mobile || \"\"} className={styles.input} />\n </div>\n\n <div className={styles.field}>\n <label>Role</label>\n <div className={styles.roleBox}>\n {roleLabels.map((name: string) => (\n <span key={name} className={styles.roleChip}>\n {name}\n </span>\n ))}\n </div>\n </div>\n </div>\n </div>\n\n <div className={styles.footerActions}>\n <SolidButton type=\"submit\" size=\"sm\" loading={formik.isSubmitting} disabled={isSaveDisabled}>\n Save\n </SolidButton>\n </div>\n </form>\n\n <ConfirmDialog\n visible={replaceDialogVisible}\n title=\"Replace Profile Picture\"\n text=\"Do you want to replace the existing profile picture?\"\n onConfirm={confirmReplace}\n onCancel={() => {\n setReplaceDialogVisible(false);\n setPendingFile(null);\n }}\n />\n\n <ConfirmDialog\n visible={deleteDialogVisible}\n title=\"Delete Profile Picture\"\n text=\"Do you want to delete your profile picture?\"\n onConfirm={confirmDelete}\n onCancel={() => setDeleteDialogVisible(false)}\n />\n </>\n );\n};\n"]}
@@ -169,6 +169,7 @@ export const SolidPersonalInfo = () => {
169
169
 
170
170
  const liveAvatarUrl = previewImage || userData?.data?._media?.profilePicture?.[0]?._full_url || null;
171
171
  const roleLabels = userData?.data?.roles?.map((role: any) => role.name) || [];
172
+ const isSaveDisabled = !formik.dirty || formik.isSubmitting;
172
173
 
173
174
  const handleFileChange = (file: File) => {
174
175
  const existing = userData?.data?._media?.profilePicture?.[0];
@@ -321,7 +322,7 @@ export const SolidPersonalInfo = () => {
321
322
  </div>
322
323
 
323
324
  <div className={styles.footerActions}>
324
- <SolidButton type="submit" size="sm" loading={formik.isSubmitting}>
325
+ <SolidButton type="submit" size="sm" loading={formik.isSubmitting} disabled={isSaveDisabled}>
325
326
  Save
326
327
  </SolidButton>
327
328
  </div>
@@ -4,7 +4,8 @@
4
4
  border-radius: 14px;
5
5
  border: 1px solid color-mix(in srgb, var(--border) 90%, transparent);
6
6
  background: linear-gradient(180deg, color-mix(in srgb, var(--card) 96%, white 4%), var(--card));
7
- overflow: auto;
7
+ overflow-y: auto;
8
+ overflow-x: visible;
8
9
  }
9
10
 
10
11
  .ImportTableHeader {
@@ -549,13 +550,16 @@
549
550
  :global(.solid-import-mapping-table) {
550
551
  border: 1px solid color-mix(in srgb, var(--border) 90%, transparent);
551
552
  border-radius: 12px;
552
- overflow: hidden;
553
+ overflow: visible;
553
554
  background: var(--card);
555
+ position: relative;
554
556
  }
555
557
 
556
558
  :global(.solid-import-mapping-head) {
557
559
  display: grid;
558
560
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.9fr);
561
+ border-top-left-radius: 12px;
562
+ border-top-right-radius: 12px;
559
563
  }
560
564
 
561
565
  :global(.solid-import-mapping-head-cell) {
@@ -571,11 +575,18 @@
571
575
  display: grid;
572
576
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.9fr);
573
577
  border-top: 1px solid color-mix(in srgb, var(--border) 90%, transparent);
578
+ position: relative;
579
+ z-index: 0;
580
+ }
581
+
582
+ :global(.solid-import-mapping-row:focus-within) {
583
+ z-index: 4;
574
584
  }
575
585
 
576
586
  :global(.solid-import-mapping-source),
577
587
  :global(.solid-import-mapping-target) {
578
588
  padding: 12px 14px;
589
+ min-width: 0;
579
590
  }
580
591
 
581
592
  :global(.solid-import-mapping-source-title) {
@@ -596,6 +607,25 @@
596
607
  display: flex;
597
608
  align-items: center;
598
609
  gap: 8px;
610
+ min-width: 0;
611
+ }
612
+
613
+ :global(.solid-import-mapping-target-controls > .solid-select-wrap) {
614
+ flex: 1 1 auto;
615
+ min-width: 0;
616
+ }
617
+
618
+ :global(.solid-import-mapping-select .solid-select-trigger) {
619
+ width: 100%;
620
+ }
621
+
622
+ :global(.solid-import-mapping-select .solid-select-menu) {
623
+ z-index: calc(var(--z-overlay) + 4);
624
+ }
625
+
626
+ :global(.solid-import-mapping-row:nth-child(-n + 1) .solid-import-mapping-select .solid-select-menu.solid-select-menu-top) {
627
+ top: calc(100% + 4px);
628
+ bottom: auto;
599
629
  }
600
630
 
601
631
  :global(.solid-import-mapping-remove) {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidImportTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidGenericImport/SolidImportTransaction.tsx"],"names":[],"mappings":"AAmFA,eAAO,MAAM,sBAAsB,4DAA6D,GAAG,4CAuRlG,CAAA"}
1
+ {"version":3,"file":"SolidImportTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidGenericImport/SolidImportTransaction.tsx"],"names":[],"mappings":"AAmFA,eAAO,MAAM,sBAAsB,4DAA6D,GAAG,4CAyRlG,CAAA"}
@@ -308,7 +308,7 @@ export var SolidImportTransaction = function (_a) {
308
308
  var fieldMeta = importableFields.find(function (f) { return f.name === fieldMapping[sample.cellHeader]; });
309
309
  var isRequired = fieldMeta === null || fieldMeta === void 0 ? void 0 : fieldMeta.required;
310
310
  var samplePreview = getSampleCellPreview(sample.cellValue);
311
- return (_jsxs("div", { className: "solid-import-mapping-row", children: [_jsxs("div", { className: "solid-import-mapping-source", children: [_jsx("div", { className: "solid-import-mapping-source-title", children: sample.cellHeader }), _jsx("div", { className: "solid-import-mapping-source-value", title: samplePreview, children: samplePreview })] }), _jsx("div", { className: "solid-import-mapping-target", children: _jsxs("div", { className: "solid-import-mapping-target-controls", children: [_jsx(SolidSelect, { value: fieldMapping[sample.cellHeader], options: dropdownOptions, onChange: function (e) { return handleChange(sample.cellHeader, e.value); }, className: "w-full", placeholder: "Select field" }), !isRequired ? (_jsx("button", { type: "button", className: "solid-import-mapping-remove", onClick: function () { return handleRemoveRow(sample.cellHeader); }, title: "Remove this row", children: _jsx(CircleX, { size: 16 }) })) : (_jsx("span", { className: "solid-import-mapping-remove-placeholder" }))] }) })] }, sample.cellHeader));
311
+ return (_jsxs("div", { className: "solid-import-mapping-row", children: [_jsxs("div", { className: "solid-import-mapping-source", children: [_jsx("div", { className: "solid-import-mapping-source-title", children: sample.cellHeader }), _jsx("div", { className: "solid-import-mapping-source-value", title: samplePreview, children: samplePreview })] }), _jsx("div", { className: "solid-import-mapping-target", children: _jsxs("div", { className: "solid-import-mapping-target-controls", children: [_jsx(SolidSelect, { value: fieldMapping[sample.cellHeader], options: dropdownOptions, onChange: function (e) { return handleChange(sample.cellHeader, e.value); }, className: "solid-import-mapping-select", placeholder: "Select field", native: false, menuPlacement: "top" }), !isRequired ? (_jsx("button", { type: "button", className: "solid-import-mapping-remove", onClick: function () { return handleRemoveRow(sample.cellHeader); }, title: "Remove this row", children: _jsx(CircleX, { size: 16 }) })) : (_jsx("span", { className: "solid-import-mapping-remove-placeholder" }))] }) })] }, sample.cellHeader));
312
312
  }) })] })] })) : (_jsxs("div", { className: 'solid-import-empty-state', children: [_jsx("h4", { className: 'text-center px-2', children: "No sample import records found" }), _jsx("p", { children: "Upload a file first and then continue to mapping." })] })) }), _jsxs("div", { className: 'solid-import-actions', children: [_jsx("p", { className: "solid-import-actions-copy", children: "Confirm the mapping and start the import." }), _jsx(SolidButton, { type: "button", size: 'small', onClick: handleImportTransaction, loading: isImporting, disabled: isImporting || isMappingInfoError || ((_k = (_j = mappingInfo === null || mappingInfo === void 0 ? void 0 : mappingInfo.data) === null || _j === void 0 ? void 0 : _j.sampleImportedRecordInfo) === null || _k === void 0 ? void 0 : _k.length) === 0, rightIcon: _jsx(MoveRight, { size: 14 }), children: "Import" })] })] }));
313
313
  };
314
314
  //# sourceMappingURL=SolidImportTransaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidImportTransaction.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidGenericImport/SolidImportTransaction.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AlertTriangle, CircleX, MoveRight } from 'lucide-react'\nimport styles from './SolidImport.module.css'\nimport { useCreateImportSyncMutation, useLazyGetImportMappingInfoQuery, usePatchUpdateImportTransactionMutation } from '../../../../redux/api/importTransactionApi';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { showToast } from '../../../../redux/features/toastSlice';\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport { SolidButton, SolidSelect, SolidSpinner } from '../../../shad-cn-ui';\n\n\nconst getImportMessage = (value: unknown, fallback: string): string => {\n if (Array.isArray(value)) {\n const normalized: string[] = value.map((item) => getImportMessage(item, \"\")).filter((item) => item.trim() !== \"\");\n return normalized.length > 0 ? normalized.join(\", \") : fallback;\n }\n\n if (value && typeof value === \"object\") {\n const errorValue = (value as any).error ?? (value as any).message ?? (value as any).detail;\n if (errorValue !== undefined) {\n return getImportMessage(errorValue, fallback);\n }\n\n try {\n return JSON.stringify(value);\n } catch {\n return fallback;\n }\n }\n\n if (value === undefined || value === null || value === \"\") {\n return fallback;\n }\n\n return String(value);\n};\n\nconst getSampleCellPreview = (value: unknown): string => {\n if (value === undefined || value === null || value === \"\") {\n return ERROR_MESSAGES.IMPORT_NO_SAMPLE_VALUE;\n }\n\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"bigint\") {\n return String(value);\n }\n\n if (Array.isArray(value)) {\n const normalized: string[] = value\n .map((item) => getSampleCellPreview(item))\n .filter((item) => item !== ERROR_MESSAGES.IMPORT_NO_SAMPLE_VALUE);\n return normalized.length > 0 ? normalized.join(\", \") : ERROR_MESSAGES.IMPORT_NO_SAMPLE_VALUE;\n }\n\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (typeof value === \"object\") {\n if (\"result\" in (value as any) && (value as any).result !== undefined && (value as any).result !== null) {\n return getSampleCellPreview((value as any).result);\n }\n\n if (\"value\" in (value as any) && (value as any).value !== undefined && (value as any).value !== null) {\n return getSampleCellPreview((value as any).value);\n }\n\n if (\"label\" in (value as any) && typeof (value as any).label === \"string\") {\n return (value as any).label;\n }\n\n if (\"formula\" in (value as any) && typeof (value as any).formula === \"string\") {\n return (value as any).formula;\n }\n\n try {\n return JSON.stringify(value);\n } catch {\n return ERROR_MESSAGES.IMPORT_UNSUPPORTED_SAMPLE_VALUE;\n }\n }\n\n return String(value);\n};\n\nexport const SolidImportTransaction = ({ setImportStatusResult, transactionId, setImportStep }: any) => {\n const dispatch = useDispatch();\n const [trigger, { data: mappingInfo, isLoading, isError: isMappingInfoError, error: mappingInfoError }] = useLazyGetImportMappingInfoQuery();\n const [patchUpdateImportTransaction] = usePatchUpdateImportTransactionMutation();\n const [createImportSync, { isLoading: isImporting }] = useCreateImportSyncMutation();\n const [fieldMapping, setFieldMapping] = useState<Record<string, string>>({});\n const [visibleHeaders, setVisibleHeaders] = useState<string[]>([]);\n\n useEffect(() => {\n if (transactionId) {\n trigger({ id: transactionId });\n }\n }, [transactionId]);\n\n useEffect(() => {\n const defaultMapping: Record<string, string> = {};\n const headers: string[] = [];\n mappingInfo?.data?.sampleImportedRecordInfo?.forEach((sample: any) => {\n defaultMapping[sample.cellHeader] = sample.defaultMappedFieldName || \"\";\n headers.push(sample.cellHeader);\n });\n setFieldMapping(defaultMapping);\n setVisibleHeaders(headers);\n }, [mappingInfo?.data]);\n\n const importableFields = mappingInfo?.data?.importableFields ?? [];\n const dropdownOptions = importableFields.map((field: any) => ({\n label: field.displayName,\n value: field.name,\n }));\n\n const handleChange = (cellHeader: string, selectedField: string) => {\n setFieldMapping((prev) => ({\n ...prev,\n [cellHeader]: selectedField,\n }));\n };\n\n const handleRemoveRow = (cellHeader: string) => {\n setVisibleHeaders((prev) => prev.filter(header => header !== cellHeader));\n setFieldMapping((prev) => {\n const updated = { ...prev };\n delete updated[cellHeader];\n return updated;\n });\n };\n\n const visibleMappingEntries = Object.entries(fieldMapping).filter(([header]) => visibleHeaders.includes(header));\n const mappedEntries = visibleMappingEntries.filter(([, fieldName]) => typeof fieldName === \"string\" && fieldName.trim() !== \"\");\n const mappedFieldCounts = mappedEntries.reduce<Record<string, number>>((acc, [, fieldName]) => {\n const normalizedFieldName = fieldName.trim();\n acc[normalizedFieldName] = (acc[normalizedFieldName] ?? 0) + 1;\n return acc;\n }, {});\n const duplicateMappedFieldNames = Object.entries(mappedFieldCounts)\n .filter(([, count]) => count > 1)\n .map(([fieldName]) => fieldName);\n const requiredImportableFields = importableFields.filter((field: any) => field.required);\n const missingRequiredFields = requiredImportableFields.filter(\n (field: any) => !mappedFieldCounts[field.name]\n );\n const totalImportableFieldCount = importableFields.length;\n const mappedImportableFieldCount = Object.keys(mappedFieldCounts).length;\n const unmappedImportableFieldCount = Math.max(totalImportableFieldCount - mappedImportableFieldCount, 0);\n\n const handleImportTransaction = async () => {\n if (mappedEntries.length === 0) {\n dispatch(showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.IMPORT_ERROR,\n detail: ERROR_MESSAGES.IMPORT_NO_MATCHED_COLUMNS,\n }));\n return;\n }\n\n if (duplicateMappedFieldNames.length > 0) {\n dispatch(showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.IMPORT_ERROR,\n detail: ERROR_MESSAGES.IMPORT_DUPLICATE_FIELD_MAPPING,\n }));\n return;\n }\n\n if (missingRequiredFields.length > 0) {\n const errorDetail = ERROR_MESSAGES.IMPORT_REQUIRED_FIELD_MAPPING_MESSAGE(missingRequiredFields.length);\n dispatch(showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.IMPORT_ERROR,\n detail: errorDetail,\n }));\n return;\n }\n\n if (unmappedImportableFieldCount > 0) {\n const errorDetail = ERROR_MESSAGES.IMPORT_MAPPING_INCOMPLETE_MESSAGE(unmappedImportableFieldCount);\n dispatch(showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.IMPORT_ERROR,\n detail: errorDetail,\n }));\n return;\n }\n\n try {\n const mappingArray = mappedEntries.map(([header, fieldName]) => ({\n header,\n fieldName,\n }));\n\n const patchData = {\n status: \"mapping_created\",\n mapping: JSON.stringify(mappingArray),\n };\n const patchResult = await patchUpdateImportTransaction({\n id: transactionId,\n data: patchData,\n }).unwrap();\n if (patchResult?.statusCode === 200) {\n\n // Sync\n try {\n const importResult = await createImportSync({ id: transactionId }).unwrap();\n\n if (importResult?.data?.status === \"import_succeeded\") {\n setImportStatusResult(importResult)\n setImportStep(4);\n }\n if (importResult?.data?.status === \"import_failed\") {\n setImportStatusResult(importResult);\n setImportStep(4);\n }\n } catch (importError: any) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.IMPORT_ERROR, detail: importError?.data?.error }));\n }\n\n // Async\n }\n } catch (error: any) {\n const errorMessage = error?.data?.error || ERROR_MESSAGES.SOMETHING_WRONG;\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.ERROR, detail: errorMessage }));\n }\n };\n\n const sampleRecords = mappingInfo?.data?.sampleImportedRecordInfo ?? [];\n const visibleSampleRecords = sampleRecords?.filter((sample: any) => visibleHeaders.includes(sample.cellHeader));\n const autoMappedCount = sampleRecords.filter((sample: any) =>\n typeof sample?.defaultMappedFieldName === \"string\" && sample.defaultMappedFieldName.trim() !== \"\"\n ).length;\n\n let mappingWarningMessage: string | null = null;\n let mappingWarningTitle: string | null = null;\n\n if (visibleSampleRecords.length > 0) {\n if (duplicateMappedFieldNames.length > 0) {\n mappingWarningTitle = ERROR_MESSAGES.IMPORT_MAPPING_INCOMPLETE_TITLE;\n mappingWarningMessage = ERROR_MESSAGES.IMPORT_DUPLICATE_FIELD_MAPPING;\n } else if (missingRequiredFields.length > 0) {\n mappingWarningTitle = ERROR_MESSAGES.IMPORT_REQUIRED_FIELD_MAPPING_TITLE;\n mappingWarningMessage = ERROR_MESSAGES.IMPORT_REQUIRED_FIELD_MAPPING_MESSAGE(missingRequiredFields.length);\n } else if (autoMappedCount === 0 && mappedImportableFieldCount === 0) {\n mappingWarningTitle = ERROR_MESSAGES.IMPORT_TEMPLATE_MISMATCH_TITLE;\n mappingWarningMessage = ERROR_MESSAGES.IMPORT_TEMPLATE_MISMATCH_MESSAGE;\n } else if (unmappedImportableFieldCount > 0) {\n mappingWarningTitle = ERROR_MESSAGES.IMPORT_MAPPING_INCOMPLETE_TITLE;\n mappingWarningMessage = ERROR_MESSAGES.IMPORT_MAPPING_INCOMPLETE_MESSAGE(unmappedImportableFieldCount);\n }\n }\n\n const mappingErrorMessage = getImportMessage(\n (mappingInfoError as any)?.data?.error ?? (mappingInfoError as any)?.data?.message,\n ERROR_MESSAGES.IMPORT_FILE_READ_FAILED\n );\n return (\n <div>\n <div className={styles.SolidImportContextWrapper}>\n {isLoading ? (\n <div className=\"solid-import-loading-state\">\n <SolidSpinner size={22} label=\"Loading mapping info\" />\n </div>\n ) : isMappingInfoError ? (\n <div className='solid-import-empty-state solid-import-empty-state-danger'>\n <h4 className='text-center px-2'>{ERROR_MESSAGES.IMPORT_UNABLE_TO_READ_FILE}</h4>\n <p>{mappingErrorMessage}</p>\n </div>\n ) : visibleSampleRecords.length > 0 ? (\n <div className='solid-import-mapping-shell'>\n <div className=\"solid-import-mapping-intro\">\n <div>\n <h5 className='solid-primary-black-text solid-import-section-title'>Map file columns</h5>\n <p className='solid-import-section-copy m-0'>Match each incoming column to the correct SolidX field before the import runs.</p>\n </div>\n <div className=\"solid-import-mapping-count\">\n {totalImportableFieldCount} importable field{totalImportableFieldCount > 1 ? 's' : ''}\n </div>\n </div>\n {mappingWarningMessage ? (\n <div className=\"solid-import-mapping-alert\" role=\"alert\">\n <div className=\"solid-import-mapping-alert-icon\">\n <AlertTriangle size={16} />\n </div>\n <div className=\"solid-import-mapping-alert-copy\">\n {mappingWarningTitle ? (\n <p className=\"solid-import-mapping-alert-title\">{mappingWarningTitle}</p>\n ) : null}\n <p className=\"solid-import-mapping-alert-text\">{mappingWarningMessage}</p>\n </div>\n </div>\n ) : null}\n <div className='solid-import-mapping-table'>\n <div className={`solid-import-mapping-head ${styles.ImportTableHeader}`}>\n <div className=\"solid-import-mapping-head-cell\">File Column</div>\n <div className=\"solid-import-mapping-head-cell\">SolidX Field</div>\n </div>\n <div className=\"solid-import-mapping-body\">\n {visibleSampleRecords.map((sample: any) => {\n const fieldMeta = importableFields.find(\n (f: any) => f.name === fieldMapping[sample.cellHeader]\n );\n const isRequired = fieldMeta?.required;\n const samplePreview = getSampleCellPreview(sample.cellValue);\n\n return (\n <div key={sample.cellHeader} className=\"solid-import-mapping-row\">\n <div className=\"solid-import-mapping-source\">\n <div className=\"solid-import-mapping-source-title\">{sample.cellHeader}</div>\n <div className=\"solid-import-mapping-source-value\" title={samplePreview}>{samplePreview}</div>\n </div>\n <div className=\"solid-import-mapping-target\">\n <div className=\"solid-import-mapping-target-controls\">\n <SolidSelect\n value={fieldMapping[sample.cellHeader]}\n options={dropdownOptions}\n onChange={(e) => handleChange(sample.cellHeader, e.value)}\n className=\"w-full\"\n placeholder=\"Select field\"\n />\n {!isRequired ? (\n <button\n type=\"button\"\n className=\"solid-import-mapping-remove\"\n onClick={() => handleRemoveRow(sample.cellHeader)}\n title=\"Remove this row\"\n >\n <CircleX size={16} />\n </button>\n ) : (\n <span className=\"solid-import-mapping-remove-placeholder\" />\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n ) : (\n <div className='solid-import-empty-state'>\n <h4 className='text-center px-2'>No sample import records found</h4>\n <p>Upload a file first and then continue to mapping.</p>\n </div>\n )}\n </div>\n <div className='solid-import-actions'>\n <p className=\"solid-import-actions-copy\">Confirm the mapping and start the import.</p>\n <SolidButton\n type=\"button\"\n size='small'\n onClick={handleImportTransaction}\n loading={isImporting}\n disabled={isImporting || isMappingInfoError || mappingInfo?.data?.sampleImportedRecordInfo?.length === 0}\n rightIcon={<MoveRight size={14} />}\n >\n Import\n </SolidButton>\n </div>\n </div>\n )\n}\n"]}
1
+ {"version":3,"file":"SolidImportTransaction.js","sourceRoot":"","sources":["../../../../../src/components/core/common/SolidGenericImport/SolidImportTransaction.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AlertTriangle, CircleX, MoveRight } from 'lucide-react'\nimport styles from './SolidImport.module.css'\nimport { useCreateImportSyncMutation, useLazyGetImportMappingInfoQuery, usePatchUpdateImportTransactionMutation } from '../../../../redux/api/importTransactionApi';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { showToast } from '../../../../redux/features/toastSlice';\nimport { ERROR_MESSAGES } from '../../../../constants/error-messages';\nimport { SolidButton, SolidSelect, SolidSpinner } from '../../../shad-cn-ui';\n\n\nconst getImportMessage = (value: unknown, fallback: string): string => {\n if (Array.isArray(value)) {\n const normalized: string[] = value.map((item) => getImportMessage(item, \"\")).filter((item) => item.trim() !== \"\");\n return normalized.length > 0 ? normalized.join(\", \") : fallback;\n }\n\n if (value && typeof value === \"object\") {\n const errorValue = (value as any).error ?? (value as any).message ?? (value as any).detail;\n if (errorValue !== undefined) {\n return getImportMessage(errorValue, fallback);\n }\n\n try {\n return JSON.stringify(value);\n } catch {\n return fallback;\n }\n }\n\n if (value === undefined || value === null || value === \"\") {\n return fallback;\n }\n\n return String(value);\n};\n\nconst getSampleCellPreview = (value: unknown): string => {\n if (value === undefined || value === null || value === \"\") {\n return ERROR_MESSAGES.IMPORT_NO_SAMPLE_VALUE;\n }\n\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"bigint\") {\n return String(value);\n }\n\n if (Array.isArray(value)) {\n const normalized: string[] = value\n .map((item) => getSampleCellPreview(item))\n .filter((item) => item !== ERROR_MESSAGES.IMPORT_NO_SAMPLE_VALUE);\n return normalized.length > 0 ? normalized.join(\", \") : ERROR_MESSAGES.IMPORT_NO_SAMPLE_VALUE;\n }\n\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (typeof value === \"object\") {\n if (\"result\" in (value as any) && (value as any).result !== undefined && (value as any).result !== null) {\n return getSampleCellPreview((value as any).result);\n }\n\n if (\"value\" in (value as any) && (value as any).value !== undefined && (value as any).value !== null) {\n return getSampleCellPreview((value as any).value);\n }\n\n if (\"label\" in (value as any) && typeof (value as any).label === \"string\") {\n return (value as any).label;\n }\n\n if (\"formula\" in (value as any) && typeof (value as any).formula === \"string\") {\n return (value as any).formula;\n }\n\n try {\n return JSON.stringify(value);\n } catch {\n return ERROR_MESSAGES.IMPORT_UNSUPPORTED_SAMPLE_VALUE;\n }\n }\n\n return String(value);\n};\n\nexport const SolidImportTransaction = ({ setImportStatusResult, transactionId, setImportStep }: any) => {\n const dispatch = useDispatch();\n const [trigger, { data: mappingInfo, isLoading, isError: isMappingInfoError, error: mappingInfoError }] = useLazyGetImportMappingInfoQuery();\n const [patchUpdateImportTransaction] = usePatchUpdateImportTransactionMutation();\n const [createImportSync, { isLoading: isImporting }] = useCreateImportSyncMutation();\n const [fieldMapping, setFieldMapping] = useState<Record<string, string>>({});\n const [visibleHeaders, setVisibleHeaders] = useState<string[]>([]);\n\n useEffect(() => {\n if (transactionId) {\n trigger({ id: transactionId });\n }\n }, [transactionId]);\n\n useEffect(() => {\n const defaultMapping: Record<string, string> = {};\n const headers: string[] = [];\n mappingInfo?.data?.sampleImportedRecordInfo?.forEach((sample: any) => {\n defaultMapping[sample.cellHeader] = sample.defaultMappedFieldName || \"\";\n headers.push(sample.cellHeader);\n });\n setFieldMapping(defaultMapping);\n setVisibleHeaders(headers);\n }, [mappingInfo?.data]);\n\n const importableFields = mappingInfo?.data?.importableFields ?? [];\n const dropdownOptions = importableFields.map((field: any) => ({\n label: field.displayName,\n value: field.name,\n }));\n\n const handleChange = (cellHeader: string, selectedField: string) => {\n setFieldMapping((prev) => ({\n ...prev,\n [cellHeader]: selectedField,\n }));\n };\n\n const handleRemoveRow = (cellHeader: string) => {\n setVisibleHeaders((prev) => prev.filter(header => header !== cellHeader));\n setFieldMapping((prev) => {\n const updated = { ...prev };\n delete updated[cellHeader];\n return updated;\n });\n };\n\n const visibleMappingEntries = Object.entries(fieldMapping).filter(([header]) => visibleHeaders.includes(header));\n const mappedEntries = visibleMappingEntries.filter(([, fieldName]) => typeof fieldName === \"string\" && fieldName.trim() !== \"\");\n const mappedFieldCounts = mappedEntries.reduce<Record<string, number>>((acc, [, fieldName]) => {\n const normalizedFieldName = fieldName.trim();\n acc[normalizedFieldName] = (acc[normalizedFieldName] ?? 0) + 1;\n return acc;\n }, {});\n const duplicateMappedFieldNames = Object.entries(mappedFieldCounts)\n .filter(([, count]) => count > 1)\n .map(([fieldName]) => fieldName);\n const requiredImportableFields = importableFields.filter((field: any) => field.required);\n const missingRequiredFields = requiredImportableFields.filter(\n (field: any) => !mappedFieldCounts[field.name]\n );\n const totalImportableFieldCount = importableFields.length;\n const mappedImportableFieldCount = Object.keys(mappedFieldCounts).length;\n const unmappedImportableFieldCount = Math.max(totalImportableFieldCount - mappedImportableFieldCount, 0);\n\n const handleImportTransaction = async () => {\n if (mappedEntries.length === 0) {\n dispatch(showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.IMPORT_ERROR,\n detail: ERROR_MESSAGES.IMPORT_NO_MATCHED_COLUMNS,\n }));\n return;\n }\n\n if (duplicateMappedFieldNames.length > 0) {\n dispatch(showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.IMPORT_ERROR,\n detail: ERROR_MESSAGES.IMPORT_DUPLICATE_FIELD_MAPPING,\n }));\n return;\n }\n\n if (missingRequiredFields.length > 0) {\n const errorDetail = ERROR_MESSAGES.IMPORT_REQUIRED_FIELD_MAPPING_MESSAGE(missingRequiredFields.length);\n dispatch(showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.IMPORT_ERROR,\n detail: errorDetail,\n }));\n return;\n }\n\n if (unmappedImportableFieldCount > 0) {\n const errorDetail = ERROR_MESSAGES.IMPORT_MAPPING_INCOMPLETE_MESSAGE(unmappedImportableFieldCount);\n dispatch(showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.IMPORT_ERROR,\n detail: errorDetail,\n }));\n return;\n }\n\n try {\n const mappingArray = mappedEntries.map(([header, fieldName]) => ({\n header,\n fieldName,\n }));\n\n const patchData = {\n status: \"mapping_created\",\n mapping: JSON.stringify(mappingArray),\n };\n const patchResult = await patchUpdateImportTransaction({\n id: transactionId,\n data: patchData,\n }).unwrap();\n if (patchResult?.statusCode === 200) {\n\n // Sync\n try {\n const importResult = await createImportSync({ id: transactionId }).unwrap();\n\n if (importResult?.data?.status === \"import_succeeded\") {\n setImportStatusResult(importResult)\n setImportStep(4);\n }\n if (importResult?.data?.status === \"import_failed\") {\n setImportStatusResult(importResult);\n setImportStep(4);\n }\n } catch (importError: any) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.IMPORT_ERROR, detail: importError?.data?.error }));\n }\n\n // Async\n }\n } catch (error: any) {\n const errorMessage = error?.data?.error || ERROR_MESSAGES.SOMETHING_WRONG;\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.ERROR, detail: errorMessage }));\n }\n };\n\n const sampleRecords = mappingInfo?.data?.sampleImportedRecordInfo ?? [];\n const visibleSampleRecords = sampleRecords?.filter((sample: any) => visibleHeaders.includes(sample.cellHeader));\n const autoMappedCount = sampleRecords.filter((sample: any) =>\n typeof sample?.defaultMappedFieldName === \"string\" && sample.defaultMappedFieldName.trim() !== \"\"\n ).length;\n\n let mappingWarningMessage: string | null = null;\n let mappingWarningTitle: string | null = null;\n\n if (visibleSampleRecords.length > 0) {\n if (duplicateMappedFieldNames.length > 0) {\n mappingWarningTitle = ERROR_MESSAGES.IMPORT_MAPPING_INCOMPLETE_TITLE;\n mappingWarningMessage = ERROR_MESSAGES.IMPORT_DUPLICATE_FIELD_MAPPING;\n } else if (missingRequiredFields.length > 0) {\n mappingWarningTitle = ERROR_MESSAGES.IMPORT_REQUIRED_FIELD_MAPPING_TITLE;\n mappingWarningMessage = ERROR_MESSAGES.IMPORT_REQUIRED_FIELD_MAPPING_MESSAGE(missingRequiredFields.length);\n } else if (autoMappedCount === 0 && mappedImportableFieldCount === 0) {\n mappingWarningTitle = ERROR_MESSAGES.IMPORT_TEMPLATE_MISMATCH_TITLE;\n mappingWarningMessage = ERROR_MESSAGES.IMPORT_TEMPLATE_MISMATCH_MESSAGE;\n } else if (unmappedImportableFieldCount > 0) {\n mappingWarningTitle = ERROR_MESSAGES.IMPORT_MAPPING_INCOMPLETE_TITLE;\n mappingWarningMessage = ERROR_MESSAGES.IMPORT_MAPPING_INCOMPLETE_MESSAGE(unmappedImportableFieldCount);\n }\n }\n\n const mappingErrorMessage = getImportMessage(\n (mappingInfoError as any)?.data?.error ?? (mappingInfoError as any)?.data?.message,\n ERROR_MESSAGES.IMPORT_FILE_READ_FAILED\n );\n return (\n <div>\n <div className={styles.SolidImportContextWrapper}>\n {isLoading ? (\n <div className=\"solid-import-loading-state\">\n <SolidSpinner size={22} label=\"Loading mapping info\" />\n </div>\n ) : isMappingInfoError ? (\n <div className='solid-import-empty-state solid-import-empty-state-danger'>\n <h4 className='text-center px-2'>{ERROR_MESSAGES.IMPORT_UNABLE_TO_READ_FILE}</h4>\n <p>{mappingErrorMessage}</p>\n </div>\n ) : visibleSampleRecords.length > 0 ? (\n <div className='solid-import-mapping-shell'>\n <div className=\"solid-import-mapping-intro\">\n <div>\n <h5 className='solid-primary-black-text solid-import-section-title'>Map file columns</h5>\n <p className='solid-import-section-copy m-0'>Match each incoming column to the correct SolidX field before the import runs.</p>\n </div>\n <div className=\"solid-import-mapping-count\">\n {totalImportableFieldCount} importable field{totalImportableFieldCount > 1 ? 's' : ''}\n </div>\n </div>\n {mappingWarningMessage ? (\n <div className=\"solid-import-mapping-alert\" role=\"alert\">\n <div className=\"solid-import-mapping-alert-icon\">\n <AlertTriangle size={16} />\n </div>\n <div className=\"solid-import-mapping-alert-copy\">\n {mappingWarningTitle ? (\n <p className=\"solid-import-mapping-alert-title\">{mappingWarningTitle}</p>\n ) : null}\n <p className=\"solid-import-mapping-alert-text\">{mappingWarningMessage}</p>\n </div>\n </div>\n ) : null}\n <div className='solid-import-mapping-table'>\n <div className={`solid-import-mapping-head ${styles.ImportTableHeader}`}>\n <div className=\"solid-import-mapping-head-cell\">File Column</div>\n <div className=\"solid-import-mapping-head-cell\">SolidX Field</div>\n </div>\n <div className=\"solid-import-mapping-body\">\n {visibleSampleRecords.map((sample: any) => {\n const fieldMeta = importableFields.find(\n (f: any) => f.name === fieldMapping[sample.cellHeader]\n );\n const isRequired = fieldMeta?.required;\n const samplePreview = getSampleCellPreview(sample.cellValue);\n\n return (\n <div key={sample.cellHeader} className=\"solid-import-mapping-row\">\n <div className=\"solid-import-mapping-source\">\n <div className=\"solid-import-mapping-source-title\">{sample.cellHeader}</div>\n <div className=\"solid-import-mapping-source-value\" title={samplePreview}>{samplePreview}</div>\n </div>\n <div className=\"solid-import-mapping-target\">\n <div className=\"solid-import-mapping-target-controls\">\n <SolidSelect\n value={fieldMapping[sample.cellHeader]}\n options={dropdownOptions}\n onChange={(e) => handleChange(sample.cellHeader, e.value)}\n className=\"solid-import-mapping-select\"\n placeholder=\"Select field\"\n native={false}\n menuPlacement=\"top\"\n />\n {!isRequired ? (\n <button\n type=\"button\"\n className=\"solid-import-mapping-remove\"\n onClick={() => handleRemoveRow(sample.cellHeader)}\n title=\"Remove this row\"\n >\n <CircleX size={16} />\n </button>\n ) : (\n <span className=\"solid-import-mapping-remove-placeholder\" />\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n ) : (\n <div className='solid-import-empty-state'>\n <h4 className='text-center px-2'>No sample import records found</h4>\n <p>Upload a file first and then continue to mapping.</p>\n </div>\n )}\n </div>\n <div className='solid-import-actions'>\n <p className=\"solid-import-actions-copy\">Confirm the mapping and start the import.</p>\n <SolidButton\n type=\"button\"\n size='small'\n onClick={handleImportTransaction}\n loading={isImporting}\n disabled={isImporting || isMappingInfoError || mappingInfo?.data?.sampleImportedRecordInfo?.length === 0}\n rightIcon={<MoveRight size={14} />}\n >\n Import\n </SolidButton>\n </div>\n </div>\n )\n}\n"]}
@@ -315,8 +315,10 @@ export const SolidImportTransaction = ({ setImportStatusResult, transactionId, s
315
315
  value={fieldMapping[sample.cellHeader]}
316
316
  options={dropdownOptions}
317
317
  onChange={(e) => handleChange(sample.cellHeader, e.value)}
318
- className="w-full"
318
+ className="solid-import-mapping-select"
319
319
  placeholder="Select field"
320
+ native={false}
321
+ menuPlacement="top"
320
322
  />
321
323
  {!isRequired ? (
322
324
  <button
@@ -61,7 +61,7 @@ import { toTitleCase } from "../../../helpers/helpers";
61
61
  import { usePathname } from "../../../hooks/usePathname";
62
62
  import { useRouter } from "../../../hooks/useRouter";
63
63
  import { useSearchParams } from "../../../hooks/useSearchParams";
64
- import { getFilterObjectFromLocalStorage } from "../list/SolidListView";
64
+ import { getFilterObjectFromLocalStorage } from "./globalSearchPersistence";
65
65
  import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
66
66
  import qs from "qs";
67
67
  import { SolidSaveCustomFilterForm } from "./SolidSaveCustomFilterForm";