import React, { useRef, useEffect, useState, useContext } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { LoadingButton } from '@material-ui/lab'; import { HeaderContext } from '../../context'; import Alert from '../../component/alert'; import PageLoader from '../../component/page_loader'; const AdminChildEdit = () => { const { isAuthenticate } = useContext(HeaderContext); const navigator = useNavigate(); const params = useParams(); const [first_name, setFirstName] = useState(''); const [last_name, setLastName] = useState(''); const [identity, setIdentity] = useState(''); const [email, setEmail] = useState(''); const [tel, setTelephone] = useState(''); const [company, setCompany] = useState(''); const [child, setChild] = 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); const isMountedRef = useRef(true); useEffect(() => { isMountedRef.current = false; if(isAuthenticate()){ setLoaded(false); axios.get(`/api/admin/children/detail/${params?.child_id}`) .then(response => { if(isMountedRef.current) return; setLoaded(true); if(response.data.status_code==200) { var child = response.data.params; setChild(child); if(child){ setFirstName(child.first_name); setLastName(child.last_name); setIdentity(child.identity); setEmail(child.email); setTelephone(child.tel); setCompany(child.company); } } else { set400Error("失敗しました。"); } }) } return () => { isMountedRef.current = true; } },[]); const handleSubmit = (e) => { e.preventDefault(); if(isAuthenticate()){ set422Errors({ first_name:'', last_name:'', identity:'', email:'', tel:'', company:'' }); setSubmit(true); var request = { first_name: first_name, last_name: last_name, identity: identity, email: email, tel: tel, company: company }; axios.put(`/api/admin/children/updateProfile/${params?.child_id}`, request) .then(response => { if(isMountedRef.current) return; setSubmit(false); switch(response.data.status_code){ case 200: { navigator(`/admin/child/detail/${params?.child_id}`, {state: response.data.success_messages}); break; } case 400: set400Error(response.data.error_messages); break; case 422: window.scrollTo(0, 0); set422Errors(response.data.error_messages); break; } }) } } return (

プロフィール編集

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