import React, { useEffect, useState } from 'react'; import { useHistory } from 'react-router-dom'; import axios from 'axios'; import { LoadingButton } from '@material-ui/lab'; import Notification from '../notification'; import Alert from '../../component/alert'; import { CircularProgress } from '@material-ui/core'; const ProfileEdit = () => { const history = useHistory(); const [notice, setNotice] = useState(localStorage.getItem('notice')); const [first_name, setFirstName] = useState(''); const [last_name, setLastName] = useState(''); const [identity, setIdentity] = useState(''); const [email, setEmail] = useState(''); const [tel, setTel] = useState(''); const [company, setCompany] = useState(''); const [profile, setProfile] = useState(null); const [_422errors, set422Errors] = useState({ first_name:'', last_name:'', identity:'', email:'', tel:'', company:'' }) const [_400error, set400Error] = useState(''); const [_success, setSuccess] = useState(''); const [submit, setSubmit] = useState(false); const [loaded, setLoaded] = useState(false); useEffect(() => { setLoaded(false); let child_id = document.getElementById('child_id').value; axios.get('/api/children/detail/'+child_id) .then(response => { setLoaded(true); setNotice(response.data.notice); if(response.data.status_code==200){ let params = response.data.params; setProfile(params); setFirstName(params.first_name); setLastName(params.last_name); setEmail(params.email); setTel(params.tel); setIdentity(params.identity); if(params.company)setCompany(params.company); }else { set400Error("失敗しました。"); } }) },[]); const handleSubmit = (e) => { e.preventDefault(); set422Errors({ first_name:'', last_name:'', identity:'', email:'', tel:'', company:'' }); const formdata = new FormData(); formdata.append('first_name', first_name); formdata.append('last_name', last_name); formdata.append('identity', identity); formdata.append('email', email); formdata.append('tel', tel); formdata.append('company', company); const post = { first_name: first_name, last_name: last_name, identity: identity, email: email, tel: tel, company: company } setSubmit(true); let child_id =document.getElementById('child_id').value; axios.put('/api/children/updateProfile/'+child_id, post) .then(response => { setSubmit(false); setNotice(response.data.notice); switch(response.data.status_code){ case 200: { history.push({ pathname: "/c-account/profile", state: response.data.success_messages}); break; } case 400: set400Error(response.data.error_messages); break; case 422: set422Errors(response.data.error_messages); break; } }) } return (

プロフィール編集

{ !loaded && } { loaded && profile &&
setFirstName(e.target.value)}/> { _422errors.first_name && { _422errors.first_name } }
setLastName(e.target.value)}/> { _422errors.last_name && { _422errors.last_name } }
setIdentity(e.target.value)}/> { _422errors.identity && { _422errors.identity } }
setEmail(e.target.value)}/> { _422errors.email && {_422errors.email} }
setTel(e.target.value)}/> { _422errors.tel && { _422errors.tel } }
setCompany(e.target.value)}/> { _422errors.company && { _422errors.company } }
プロフィールを更新
} { _400error && set400Error('')}>{_400error} } { _success && setSuccess('')}>{_success} }
) } export default ProfileEdit;