import React from 'react'; import { xhrGet, xhrPost } from '../../../services/xhr'; import { useHistory, useParams } from 'react-router'; import { useDispatch } from 'react-redux'; import { Divider, Input, Switch, Button, Toast } from '@douyinfe/semi-ui'; import './UserMutator.less'; import { SegmentPart } from '../../../components/segment/SegmentPart'; import { IconPlusCircle } from '@douyinfe/semi-icons'; const UserMutator = function UserMutator() { const params = useParams(); const [username, setUsername] = React.useState(''); const [password, setPassword] = React.useState(''); const [password2, setPassword2] = React.useState(''); const [isAdmin, setIsAdmin] = React.useState(false); const history = useHistory(); const dispatch = useDispatch(); React.useEffect(() => { async function init() { if (params.userId != null) { try { const userJson = await xhrGet(`/api/admin/users/${params.userId}`); const user = userJson.json; const defaultName = user?.username || ''; const defaultIsAdmin = user?.isAdmin || false; setUsername(defaultName); setIsAdmin(defaultIsAdmin); } catch (Exception) { console.error(Exception); } } } init(); }, [params.userId]); const saveUser = async () => { try { await xhrPost('/api/admin/users', { userId: params.userId || null, username, password, password2, isAdmin, }); await dispatch.user.getUsers(); Toast.success('User successfully saved...'); history.push('/users'); } catch (error) { console.error(error); Toast.error(error.json.message); } }; return (
); }; export default UserMutator;