import React, { useState } from 'react'; import Styles from './web.pc.module.less'; import { Button, List, Modal, Tag, Input, Radio } from 'antd'; import MyAvatar from '../avatar'; import OakIcon from 'oak-frontend-base/es/components/icon'; const PrimaryColor = getComputedStyle(document.documentElement).getPropertyValue('--oak-color-primary'); const WarningColor = getComputedStyle(document.documentElement).getPropertyValue('--oak-color-warning'); const ErrorColor = getComputedStyle(document.documentElement).getPropertyValue('--oak-color-error'); const SuccessColor = getComputedStyle(document.documentElement).getPropertyValue('--oak-color-success'); const UserStateColor = { normal: PrimaryColor, merged: WarningColor, shadow: WarningColor, disabled: ErrorColor, }; const IdStateColor = { unverified: WarningColor, verifying: PrimaryColor, verified: SuccessColor, }; export default function Render(props) { const { nameText, mobileText, userId, nickname, name, idState, userState, gender, showLogout } = props.data; const { t, logout, navigateTo, updateAttribute } = props.methods; const [updateAttr, setUpdateAttr] = useState(undefined); const [updateValue, setUpdateValue] = useState(undefined); if (!userId) { return (
); } const GenderOptions = [ { label: t('user:v.gender.male'), value: 'male', }, { label: t('user:v.gender.female'), value: 'female', } ]; return (
{nameText || t('unset')}
{showLogout && }
} onClick={() => setUpdateAttr('nickname')}> } onClick={() => setUpdateAttr('name')}> {t(`user:v.userState.${userState}`)}}/> {t(`user:v.idState.${idState}`)}}/> } onClick={() => setUpdateAttr('gender')}> }>
{ await updateAttribute(updateAttr, updateValue); setUpdateAttr(undefined); setUpdateValue(undefined); }} onCancel={() => { setUpdateAttr(undefined); setUpdateValue(undefined); }} okButtonProps={{ disabled: updateValue === undefined, }}> {updateAttr !== 'gender' && { const { value } = target; setUpdateValue(value); }}/>} {updateAttr === 'gender' && { const { value } = e.target; setUpdateValue(value); }}/>}
); }