'use client' import { useEffect, useState } from 'react' import { useEditUserMutation } from '@/store/services' import { SubmitHandler, useForm } from 'react-hook-form' import { yupResolver } from '@hookform/resolvers/yup' import { addressSchema } from 'utils' import { useUserInfo } from 'hooks' import regions from 'china-citys' import { TextField, DisplayError, SubmitModalBtn, Combobox, Modal, HandleResponse, } from 'components' const AddressModal = props => { //? Porps const { isShow, onClose, address } = props //? Assets let AllProvinces = regions.getProvinces() //? Get User Data const { userInfo } = useUserInfo() //? State const [cities, setCities] = useState([]) const [areas, setAreas] = useState([]) //? Form Hook const { handleSubmit, control, formState: { errors: formErrors }, setValue, getValues, watch, } = useForm({ resolver: yupResolver(addressSchema), defaultValues: address, }) //? Edit User-Info Query const [editUser, { data, isSuccess, isLoading, isError, error }] = useEditUserMutation() //? Re-Renders //* Change cities beside on province useEffect(() => { setValue('area', {}) getValues('city')?.code ? setAreas(regions.getAreasByCity(getValues('city')?.code)) : '' watch('city') }, [getValues('city')?.code]) useEffect(() => { setValue('city', {}) setCities(regions.getCitysByProvince(getValues('province')?.code)) watch('province') }, [getValues('province')?.code]) useEffect(() => { if (userInfo?.address) { setValue('city', userInfo.address.city) setValue('area', userInfo.address.area) } }, []) //? Handlers const submitHander = address => { editUser({ body: { address }, }) } //? Render(s) return ( <> {/* Handle Edit Address Response */} {(isSuccess || isError) && ( )} 地址管理

请输入您的收货地址

确定
) } export default AddressModal