"use client"; import AppContext from "@ctx/AppContext"; import { iranCities } from "iranCities"; import { iranProvince } from "iranProvince"; import Chapar from "plugins/Chapar"; import validateIranPhone from "plugins/IranPhoneRegex"; import { useContext, useEffect, useRef, useState } from "react"; import { BottomSheet } from "react-spring-bottom-sheet"; import { toast } from "react-toastify"; import SimpleReactValidator from "simple-react-validator"; const BottomSheetAddress = () => { const CTX = useContext(AppContext); const provinceData = iranProvince(); const citiesData = iranCities(); const [province, setProvince] = useState(null); const [city, setCity] = useState(null); const [cityData, setCityData] = useState([]); const [plaque, setPlaque] = useState(""); const [address, setAddress] = useState(""); const [buildingUnit, setBuildingUnit] = useState(""); const [postalCode, setPostalCode] = useState(""); const [receiverFullName, setReceiverFullName] = useState(""); const [receiverPhoneNumber, setReceiverPhoneNumber] = useState(""); const validator = useRef( new SimpleReactValidator({ messages: { required: "پر کردن این فیلد الزامی میباشد", }, element: (message) => ( <>
{message}
), }) ); const body = { address, province: provinceData?.find((e) => e.id == province)?.title, city: citiesData?.find((e) => e.id == city)?.title, plaque, buildingUnit, receiverFullName, receiverPhoneNumber, postalCode, }; const handleCreateAddress = async () => { if (validateIranPhone(receiverPhoneNumber)) { if (validator.current.allValid()) { try { const data = await Chapar.post( `${process.env.NEXT_PUBLIC_API_URL}/user/address`, JSON.stringify(body), { headers: { Authorization: localStorage.getItem("token"), }, } ); toast.success(`آدرس اضافه شد`, { position: "bottom-right", closeOnClick: true, }); CTX.setBottomSheetAddressOpen(false); CTX.fetchAddressUser(); } catch ({ error, status }) { toast.error(`${error?.response?.data?.message}`, { position: "bottom-right", closeOnClick: true, }); } } else { toast.error("پرکردن همه ی فیلد ها واجب است", { position: "bottom-right", autoClose: 2000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, }); } } else { toast.error("شماره تماس را درست وارد کنید", { position: "bottom-right", autoClose: 2000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, }); } }; useEffect(() => { setCityData(citiesData.filter((city) => city.province_id == province)); }, [province]); return ( CTX.setBottomSheetAddressOpen(false)} className={"z-50 relative "} >

اقزودن آدرس جدید

{" "} {validator ? ( <> {validator.current.message("province", province, "required")} ) : ( "" )}
{" "} {validator ? ( <>{validator.current.message("city", city, "required")} ) : ( "" )}
{ setAddress(e.target.value); validator.current.showMessageFor("address"); }} />
{" "} {validator ? ( <>{validator.current.message("address", address, "required")} ) : ( "" )}
{ setPlaque(e.target.value); validator.current.showMessageFor("plaque"); }} />
{" "} {validator ? ( <>{validator.current.message("plaque", plaque, "required")} ) : ( "" )}
{ setBuildingUnit(e.target.value); validator.current.showMessageFor("buildingUnit"); }} />
{" "} {validator ? ( <> {validator.current.message( "buildingUnit", buildingUnit, "required" )} ) : ( "" )}
{ setPostalCode(e.target.value); validator.current.showMessageFor("postalCode"); }} />
{" "} {validator ? ( <> {validator.current.message( "postalCode", postalCode, "required" )} ) : ( "" )}
{ setReceiverFullName(e.target.value); validator.current.showMessageFor("receiverFullName"); }} />
{" "} {validator ? ( <> {validator.current.message( "receiverFullName", receiverFullName, "required" )} ) : ( "" )}
{ setReceiverPhoneNumber(e.target.value); validator.current.showMessageFor("receiverPhoneNumber"); }} className="form-control bg-white !border-[1px] focus:!border-[1px] border-gray-400 focus:!border-gray-300 rounded-lg text-right !text-sm tr03 " placeholder="0912......" />
{" "} {validator ? ( <> {validator.current.message( "receiverPhoneNumber", receiverPhoneNumber, "required" )} ) : ( "" )}
); }; export default BottomSheetAddress;