import styles from './styles.module.scss'; import {useDispatch, useSelector} from "react-redux"; import {ReactComponent as EmptyAvatar} from '@assets/avatar_empty.svg'; import {getIsGuest, getLogoutStatus, getUpgradeBonus, getUserInfo, isLogined} from "@features/mainSlice"; import Spring from "@components/Spring"; import {useNavigate} from "react-router-dom"; import {ROUTE_PATH} from "@constants/routes"; import LazyImage from "@components/LazyImage"; import USD from "@assets/lvicon/USD.black.png"; import {formatCash, numFormatter, stringFormat} from "@utils/helpers"; import SvgIcon from "@components/SvgIcon"; import {ReactComponent as Male} from '@assets/singlesvg/gener/male.svg'; import {ReactComponent as FeMale} from '@assets/singlesvg/gener/female.svg'; import {ReactComponent as GenderIcon} from '@assets/singlesvg/gener/gender.svg'; import {ReactComponent as MobileIcon} from '@assets/singlesvg/mobile.svg'; import {ReactComponent as EmailIcon} from '@assets/singlesvg/email.svg'; import {ReactComponent as InstallIcon} from "@assets/singlesvg/install.svg"; import {ReactComponent as SoundOnIcon} from "@assets/singlesvg/sound-on.svg"; import {ReactComponent as SoundOffIcon} from "@assets/singlesvg/sound-off.svg"; import {ReactComponent as BindPhone} from "@assets/singlesvg/userupgrade.svg"; import {CopyToClipboard} from 'react-copy-to-clipboard'; import {toast} from "react-toastify"; import ToggleButtonGroup from "@mui/material/ToggleButtonGroup"; import {StyledThemeTabs} from "@layout/Sidebar/styles"; import {useThemeProvider} from "@contexts/themeContext"; import ToggleButton from "@mui/material/ToggleButton"; import {reqChangeInfo, reqLogout} from "@features/api"; import {REQ_STATUS} from "@api/config"; import SmallLoading from "@components/SmallLoading"; import {APP_GENDER, APP_THEME} from "@constants/app"; import AntSwitch from "@components/AntSwitch"; import LazyImgix from "@components/Imgix/LazyImgix"; const i18n=global.i18n; const UserSettings=()=>{ const isLogin=useSelector(isLogined); const user=useSelector(getUserInfo); const logoutStatus=useSelector(getLogoutStatus); const dispatch = useDispatch(); const navigate=useNavigate(); const {theme, toggleTheme,setIsShowLang,installOpen,toggleInstallOpen,soundOpen,toggleSoundOpen} = useThemeProvider(); const guest=useSelector(getIsGuest); const upgradBonus=useSelector(getUpgradeBonus); const renderEmpty=()=>{ return (
{i18n.t("settings.user_info.welcome")} {i18n.t("settings.user_info.tips")}
) } const getPhone=()=>{ let loc=user.RegisterLocation; let phone=user.Phone; if (phone.startsWith(loc)){ phone=phone.replace(loc,""); } return phone; } const getEmail=()=>{ let email=user.Email; if (email==null||email==""){ return "--"; } return email; } const renderPhone=()=>{ return (
{i18n.t("settings.phone")}
{"+"+user.RegisterLocation}
{getPhone()}
) } const renderEmail=()=>{ return (
{i18n.t("settings.email")}
{getEmail()}
) } const renderUser=()=>{ let gender=(<>); if (user.Gender===APP_GENDER.FEMALE){ gender=(); } else if (user.Gender===APP_GENDER.MALE){ gender=(); } return (
{/**/}
{user.NickName}
{gender}
{ toast.success(i18n.t("copy_success")); }}>
{i18n.t("settings.user_info.id")}
{user.GameID}
{global.DOLLAR+""+numFormatter(user.Score)}
{/*
*/} {/*{renderPhone()}*/} {/*{renderEmail()}*/}
) } const renderUserInfo=()=>{ return ( <> { isLogin?renderUser():renderEmpty() } ) } const renderItemSecurity=()=>{ return ( <> { isLogin?( ):(<>) } ) } const renderItemLang=()=>{ return ( ) } const handleTheme=(theme)=>{ toggleTheme(); // "DefaultLanguage": "en", // "ThemeColor": "dark" if (!isLogin)return; dispatch(reqChangeInfo({ ThemeColor:theme })); } const renderItemTheme=()=>{ return ( ) } const renderItemGender=()=>{ return (
{i18n.t("settings.gender")}
{ user.Gender===APP_GENDER.FEMALE?():() }
) } const renderItemInstallBanner=()=>{ return (
{i18n.t("settings.install_banner")}
{ toggleInstallOpen(); }}>
) } const renderItemSound=()=>{ return (
{ soundOpen?():() }
{i18n.t("settings.sound")}
{ toggleSoundOpen(); }}>
) } const renderBindPhone=()=>{ let isShowBind=false; if (guest===1){ if (user!=null){ if (user.Phone==null||user.Phone===""){ isShowBind=true; } } } let bonusStr=stringFormat(i18n.t("settings.bonus"),[global.DOLLAR+""+formatCash(upgradBonus,0)]); return ( <> { isLogin&&isShowBind?( ):(<>) } ) } const renderSetting=()=>{ return (
{renderItemSecurity()} {renderBindPhone()} {renderItemInstallBanner()} {renderItemSound()} {renderItemLang()} {/*{renderItemGender()}*/} {renderItemTheme()}
) } const renderLogout=()=>{ return ( <> { isLogin?( ):(<>) } ) } return (
{renderUserInfo()} {renderSetting()} {renderLogout()}
) } export default UserSettings;