import React, { useEffect, useState } from 'react'; import { useNavigate, Link, useParams } from 'react-router-dom'; import { LoadingButton } from '@material-ui/lab'; import IconButton from "@material-ui/core/IconButton"; import PhotoCameraOutlinedIcon from '@mui/icons-material/PhotoCameraOutlined'; import Alert from '../../../component/alert'; const ParentSignUp = () => { const navigator = useNavigate(); const params = useParams(); const [submit, setSubmit] = useState(false); const [loaded, setLoaded] = useState(false); const [image, setImage] = useState(null); const [company, setCompany] = useState(''); const [password, setPassword] = useState(''); const [password_confirmation, setPasswordConfirmation] = useState(''); const [tel, setTel] = useState(''); const [profile, setProfile] = useState(''); const [check_terms, setCheckTerms] = useState(false); const [_422errors, set422Errors] = useState({ image:'', company:'', password:'', password_confirmation: '', tel:'', profile:'', terms:'' }); const [_400error, set400Error] = useState(''); useEffect( async ()=>{ await axios.get('/api/fathers/checkRegisterMain', {params:{token: params?.token}}) .then(response=>{ switch(response.data.status_code){ case 200: setLoaded(true); break; case 400: navigator('/p-account/login', { state: '' }); break; }; }) },[]) const handleSubmit = async (e) => { e.preventDefault(); set422Errors({ image:'', company:'', password:'', password_confirmation: '', tel:'', profile:'', terms:'' }); setSubmit(true); const formdata = new FormData(); formdata.append('image', image); formdata.append('company', company); formdata.append('password', password); formdata.append('password_confirmation', password_confirmation); formdata.append('tel', tel); formdata.append('profile', profile); formdata.append('terms', check_terms); formdata.append('token', params?.token); await axios.post('/api/fathers/registerMain', formdata) .then(response => { setSubmit(false); switch(response.data.status_code){ case 200: navigator('/p-account/register/complete/'+ params?.token, {state: response.data.success_messages}); break; case 400: set400Error(response.data.error_messages); break; case 401: navigator('/p-account/register/error/'+ params?.token, {state: response.data.error_messages}); break; case 422: { window.scrollTo(0, 0); set422Errors(response.data.error_messages); break; } }; if(response.data.status_code != 200){ setPassword(''); setPasswordConfirmation(''); } }) } const handleImageChange = (e) => { e.preventDefault(); let reader = new FileReader(); let _file = e.target.files[0]; reader.readAsDataURL(_file); reader.onloadend = () => { setImage(reader.result); }; }; if(!loaded) return null; return (

本登録

handleImageChange(e)}/>
{ image && avatar-img }
{ _422errors.image && { _422errors.image } }
setCompany(e.target.value)}/> { _422errors.company && { _422errors.company } }
setPassword(e.target.value)}/> { _422errors.password && { _422errors.password } }
setPasswordConfirmation(e.target.value)}/> { _422errors.password_confirmation && { _422errors.password_confirmation } }
setTel(e.target.value)}/> { _422errors.tel && { _422errors.tel } }