From 5ac43b6c3ba12d88cb248429246ff85e21ae00dd Mon Sep 17 00:00:00 2001 From: Amirhossein Mahmoodi Date: Sat, 6 Sep 2025 10:05:46 +0330 Subject: [PATCH] add mobile (#1) * add mobile * formatting --- .../Actions/Create/Form/CreateFormContent.jsx | 48 +++++++++++++++++-- .../rahdaran/Actions/Create/Form/index.jsx | 2 + .../rahdaran/Actions/Edit/EditController.jsx | 2 + .../dashboard/rahdaran/RahdaranList.jsx | 11 +++++ 4 files changed, 59 insertions(+), 4 deletions(-) diff --git a/src/components/dashboard/rahdaran/Actions/Create/Form/CreateFormContent.jsx b/src/components/dashboard/rahdaran/Actions/Create/Form/CreateFormContent.jsx index 74a2e76..ff8be50 100644 --- a/src/components/dashboard/rahdaran/Actions/Create/Form/CreateFormContent.jsx +++ b/src/components/dashboard/rahdaran/Actions/Create/Form/CreateFormContent.jsx @@ -3,16 +3,19 @@ import StyledForm from "@/core/components/StyledForm"; import validateNationalCode from "@/core/utils/nationalCodeValidation"; import { yupResolver } from "@hookform/resolvers/yup"; import { Beenhere, ExitToApp } from "@mui/icons-material"; -import { Button, DialogActions, DialogContent, Grid, Stack } from "@mui/material"; +import { Button, DialogActions, DialogContent, Grid, Stack, TextField } from "@mui/material"; import { Controller, useForm } from "react-hook-form"; import { object, string } from "yup"; const validationSchema = object({ - name: string().required("وارد کردن نام فارسی الزامیست!"), + name: string().required("وارد کردن نام و نام خانوادگی الزامیست!"), code: string() .required("لطفا کد ملی را وارد کنید!!!") .test("max", "کد ملی باید شامل 10 رقم باشد", (value) => value.toString().length === 10) .test("validation", "کد ملی صحیح نمی باشد", (value) => validateNationalCode(value)), + phone_number: string() + .matches(/^09\d{9}$/, "شماره موبایل باید با 09 شروع شده و 11 رقم باشد") + .required("لطفا تلفن همراه را وارد کنید!!!"), }); const CreateFormContent = ({ setOpen, defaultValues, onSubmitBase }) => { @@ -44,10 +47,10 @@ const CreateFormContent = ({ setOpen, defaultValues, onSubmitBase }) => { { + + + + ( + { + const inputValue = event.target.value; + if (isNaN(Number(inputValue))) { + return; + } + field.onChange(inputValue); + }} + label="شماره همراه" + placeholder={"شماره همراه را وارد کنید"} + fullWidth + size="small" + error={error} + helperText={error?.message} + InputLabelProps={{ shrink: true }} + /> + )} + /> + + + diff --git a/src/components/dashboard/rahdaran/Actions/Create/Form/index.jsx b/src/components/dashboard/rahdaran/Actions/Create/Form/index.jsx index 5cb292d..fbc264f 100644 --- a/src/components/dashboard/rahdaran/Actions/Create/Form/index.jsx +++ b/src/components/dashboard/rahdaran/Actions/Create/Form/index.jsx @@ -10,11 +10,13 @@ const CreateForm = ({ open, setOpen, mutate }) => { const defaultValues = { name: "", code: "", + phone_number: "", }; const onSubmit = async (result) => { const formData = new FormData(); formData.append("name", result.name); formData.append("code", result.code); + formData.append("mobile", result.phone_number); await requestServer(CREATE_RAHDARAN_ITEM, "post", { data: formData, diff --git a/src/components/dashboard/rahdaran/Actions/Edit/EditController.jsx b/src/components/dashboard/rahdaran/Actions/Edit/EditController.jsx index 61bb336..6fc5d76 100644 --- a/src/components/dashboard/rahdaran/Actions/Edit/EditController.jsx +++ b/src/components/dashboard/rahdaran/Actions/Edit/EditController.jsx @@ -10,11 +10,13 @@ const EditController = ({ rowId, mutate, setOpen, row }) => { const defaultData = { name: row.original?.name || "", code: row.original?.code || "", + phone_number: row.original?.mobile || "", }; const handleSubmit = async (result) => { const formData = new FormData(); formData.append("name", result.name); formData.append("code", result.code); + formData.append("mobile", result.phone_number); await requestServer(`${UPDATE_RAHDARAN_ITEM}/${rowId}`, "post", { data: formData, diff --git a/src/components/dashboard/rahdaran/RahdaranList.jsx b/src/components/dashboard/rahdaran/RahdaranList.jsx index 90df9e9..7fe1ffb 100644 --- a/src/components/dashboard/rahdaran/RahdaranList.jsx +++ b/src/components/dashboard/rahdaran/RahdaranList.jsx @@ -43,6 +43,17 @@ const RahdaranList = () => { grow: false, size: 100, }, + { + accessorKey: "mobile", + header: "شماره همراه", + id: "mobile", + enableColumnFilter: true, + datatype: "text", + filterMode: "equals", + columnFilterModeOptions: ["equals", "contains"], + grow: false, + size: 100, + }, ], [] );