import React, { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import onInput from "../../../utils/onInput"; import { user, file, publicApi } from "../../../redux/actions"; import { connect } from "react-redux"; import moment from "jalali-moment"; //components import Select from "../../../components/Select"; import Input from "../../../components/Input"; import TextArea from "../../../components/Textarea"; import Upload from "./Upload"; import Gender from "./GenderSwitch"; import Birthdate from "./Birthdate"; import MultipleSelector from "./MultipleSelector"; import Document from "./Document"; function Profile({ isMobile, profile, uploads, uploadId, upload, getProvince, getCity, setDone, setProfile, province, provinceList, cityList, setHeaderOptions, headerOptions, loading, }) { let navigate = useNavigate(); const [formData, setFormData] = useState(null); useEffect(() => { if (user) { const momentDate = moment(profile?.birthDate); const isValid = momentDate.isValid(); setFormData({ // file: uploads["file"] || profile.picFileId, picFileId: uploads["file"] || profile?.picFileId, docFileIds: uploads["docFileIds"] || profile?.docFileIds, firstName: profile?.firstName, lastName: profile?.lastName, password: profile?.password, username: profile?.username, address: profile?.address, email: profile?.email, birthDate: { day: isValid ? moment(profile?.birthDate).format("jDD") : null, month: isValid ? moment(profile?.birthDate).format("jMM") : null, year: isValid ? moment(profile?.birthDate).format("jYYYY") : null, }, gender: profile?.gender || 1, status: profile?.status || 1, nationalId: profile?.nationalId || "", phone: profile?.phone || "", cellphone: profile?.cellphone || "", schools: profile?.schools || null, zoneId: profile?.zoneId || "", schoolId: profile?.schoolId || "", postalCode: profile?.postalCode || "", gradeIds: profile?.gradeIds || [], provinceId: profile?.provinceId || null, cityId: profile?.cityId || null, }); } }, [user]); useEffect(() => { if(isMobile){ setHeaderOptions(headerOptions); } getProvince(); }, []); const grades = [ { name: window.t("پیش دبستانی"), value: 0, }, { name: window.t("اول"), value: 1, }, { name: window.t("دوم"), value: 2, }, { name: window.t("سوم"), value: 3, }, { name: window.t("چهارم"), value: 4, }, { name: window.t("پنجم"), value: 5, }, { name: window.t("ششم"), value: 6, }, { name: window.t("هفتم"), value: 7, }, { name: window.t("هشتم"), value: 8, }, { name: window.t("نهم"), value: 9, }, { name: window.t("دهم"), value: 10, }, { name: window.t("یازدهم"), value: 11, }, { name: window.t("دوازدهم"), value: 12, }, ]; const onSubmit = React.useCallback(async () => { const data = { firstName: formData?.firstName, lastName: formData?.lastName, username: formData?.username, cellphone: formData?.cellphone, password: formData?.password, postalCode: formData?.postalCode, address: formData?.address, email: formData?.email, phone: formData?.phone, cellphone: formData?.cellphone, nationalId: formData?.nationalId, picFileId: uploads["picFileId"] || formData?.picFileId, birthDate: moment .from( `${formData?.birthDate?.year}/${formData?.birthDate?.month}/${formData?.birthDate?.day}`, "fa", "YYYY/MM/DD" ) .locale("en"), gender: formData?.gender, schools: formData?.schools, gradeIds: formData?.gradeIds, status: formData?.status, provinceId: formData?.provinceId, cityId: formData?.cityId, docFileIds: uploads["docFileIds"] || formData?.docFileIds, }; await setProfile(data); }, [formData, uploads]); return isMobile ? (
{window.t("لطفا مشخصات خود را به صورت کامل نمایید.")}