import React, { useState, useRef, useEffect } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import { LoadingButton } from '@material-ui/lab'; import Alert from '../../component/alert'; const AdminLogin = () => { const location = useLocation(); const navigator = useNavigate(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [submit, setSubmit] = useState(false); const [_422errors, set422Errors] = useState({ email:null, password:null }) const [_400error, set400Error] = useState(null); const [_success, setSuccess] = useState(null); const isMountedRef = useRef(true); useEffect(() => { isMountedRef.current = false; axios.post('/api/admin/checkSession').then(response => { if (isMountedRef.current) return; switch (response.data.status_code) { case 200: { if(location.search == '') window.location.href = "/admin/meeting"; else window.location.href = location.search.replace('?redirect_to=', ''); break; } default: break; } }); return () => { isMountedRef.current = true; } }, []) const loginOK = (id) => { let token = { type: 'admin', id: id, from_login: true }; localStorage.setItem('admin_token', JSON.stringify(token)); if(location.search == '') window.location.href = "/admin/meeting"; else window.location.href = location.search.replace('?redirect_to=', ''); } const handleSubmit = (e) => { e.preventDefault(); set422Errors({ email:'', password:'' }); setSubmit(true); //show progressbar const formdata = new FormData(); formdata.append('email', email); formdata.append('password', password); axios.post('/api/admin/login', formdata) .then(response => { if(isMountedRef.current) return; setSubmit(false) switch(response.data.status_code){ case 200: { loginOK(response.data.params.id); break; } case 422: { window.scrollTo(0, 0); set422Errors(response.data.error_messages); break; } case 400: { set400Error(response.data.error_message); break; } } if(response.data.status_code != 200){ setPassword(''); } }) .catch(err=>console.log(err)) } return (

管理者ログイン

setEmail(e.target.value)} autoFocus/> { _422errors.email && {_422errors.email} }
setPassword(e.target.value)} /> { _422errors.password && {_422errors.password} }
ログイン
{ _400error && set400Error(null)}>{_400error} }
) } export default AdminLogin;