import styles from './styles.module.scss';
import Spring from "@components/Spring";
import {APP_AVATAR, REQ_STATUS} from "@api/config";
import LazyImage from "@components/LazyImage";
import {useDispatch, useSelector} from "react-redux";
import {getChangeEmailStatus, getChangeInfoStatus, getChangePhoneStatus, getUserInfo} from "@features/mainSlice";
import React, {useState} from "react";
import {Controller, useForm} from "react-hook-form";
import classNames from "classnames";
import PhoneInput from "@components/UInput/PhoneInput";
import {ReactComponent as Male} from '@assets/singlesvg/gener/male.svg';
import {ReactComponent as FeMale} from '@assets/singlesvg/gener/female.svg';
import SmallLoading from "@components/SmallLoading";
import {reqChangeEmail, reqChangeInfo, reqChangePhone} from "@features/api";
import {APP_GENDER} from "@constants/app";
const i18n=global.i18n;
const getAvatarUrl=(id)=>{
return `${APP_AVATAR}avatar_${id}.png`;
}
const SelectAvatar=({innerRef, ...props})=>{
const [value, setValue] = useState(props.value);
const aNum=16;
const avatars = Array.from({ length:aNum }, (value, index) => index + 1);
return (
{
avatars.map((item,index)=>{
return (
)
})
}
)
}
const WEditProfile=({close})=>{
const user=useSelector(getUserInfo);
const status=useSelector(getChangeInfoStatus);
const status_ph=useSelector(getChangePhoneStatus);
const status_em=useSelector(getChangeEmailStatus);
const dispatch = useDispatch();
const [avatarID,setAvatarID]=useState(user.FaceID);
const [country, setCountry] = useState(user.RegisterLocation);
const getPhone=()=>{
let loc=user.RegisterLocation;
let phone=user.Phone;
if (phone.startsWith(loc)){
phone=phone.replace(loc,"");
}
return phone;
}
const getIsLock=()=>{
let isLock=status===REQ_STATUS.LOADING||status_ph===REQ_STATUS.LOADING||status_em===REQ_STATUS.LOADING;
return isLock;
}
const {register, handleSubmit, formState: {errors}, control} = useForm({
defaultValues: {
FaceID:user.FaceID,
NickName:user.NickName,
Gender:user.Gender,
Phone:getPhone(),
Email:user.Email
}
});
const renderAvatar=()=>{
return (
)
}
const renderSelectAvatar=()=>{
return (
{i18n.t("user.title_avatar")}
(
{
onChange(faceID);
setAvatarID(faceID);
}}
innerRef={ref}/>
)}
/>
)
}
const renderUsername=()=>{
return (
)
}
const renderPhone=()=>{
return (
{i18n.t("user.title_phone")}
(
onChange(e.target.value)}
onChangeCountry={(country)=>{
setCountry(country);
}}
placeholder={i18n.t('user.phone_ph')}
innerRef={ref}/>
)}
/>
)
}
const renderEmail=()=>{
return (
)
}
const renderGender=()=>{
return (
{i18n.t("user.title_gender")}
(