feat(userAccount): add validation for Iranian national code and update input handling

This commit is contained in:
hamed
2026-06-19 11:23:01 +03:30
parent da05a4e13c
commit a19058d9a2
3 changed files with 27 additions and 6 deletions
@@ -2,6 +2,7 @@ import ArrowLeftWhiteD from "@/components/icons/ArrowLeftWhiteD";
import {
changeDateType,
handleTimeExpiresToken,
isValidIranNationalCode,
removeAdditionalKeysDashboard,
} from "@/helper";
import { request } from "@/services/response";
@@ -81,6 +82,12 @@ function ButtonSendData({
};
const sendReq = () => {
if (information?.national_code && !isValidIranNationalCode(information.national_code)) {
setErrors((prev) => ({ ...prev, national_code: true }));
toast.error("کد ملی وارد شده معتبر نیست");
return;
}
setLoading(true);
information.prev_data ? patchData() : postData();
@@ -42,14 +42,14 @@ function Form({ insurance, errors, changeData, information }) {
<Field
req={true}
error={errors?.national_code}
type="number"
type="text"
iconGray={true}
name="national_code"
isTransparent={true}
changeData={changeData}
data={information?.national_code}
// کد ملی فقط وقتی از قبل مقدار دارد قفل می‌شود؛ اگر خالی است قابل افزودن باشد.
disable={Boolean(information?.national_code)}
changeData={(val, name) =>
changeData(val.replace(/\D/g, "").slice(0, 10), name)
}
value={information?.national_code ?? ""}
/>
</Content>
<Content req={true} error={errors?.name} title="نام" isConfirmed={false}>