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 AdminParentEdit = () => { const navigator = useNavigate(); const params = useParams(); const { isAuthenticate } = useContext(HeaderContext); const [company, setCompany] = useState(''); const [email, setEmail] = useState(''); const [tel, setTelephone] = useState(''); const [profile, setProfile] = useState(''); const [limit, setLimit] = useState(''); const [parent, setParent] = useState(null); const [_422errors, set422Errors] = useState({ company:'', email:'', tel:'', profile:'', relation_limit:'' }); const [_400error, set400Error] = useState(''); const [_401error, set401Error] = 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/fathers/detail/${params?.father_id}`) .then(response => { if(isMountedRef.current) return; setLoaded(true); if(response.data.status_code==200){ var parent = response.data.params; setParent(parent); if(parent){ setCompany(parent?.company); setEmail(parent.email); setTelephone(parent.tel); setProfile(parent.profile ? parent.profile: ''); setLimit(parent.limit); } } else{ set400Error("失敗しました。"); } }) } return () => { isMountedRef.current = true; } },[]); const handleSubmit = (e) => { e.preventDefault(); if(isAuthenticate()){ set401Error(''); set422Errors({ company:'', email:'', tel:'', profile:'', relation_limit:'' }); setSubmit(true); var request = { relation_limit: limit, company: company, email: email, tel: tel, profile: profile, }; axios.put(`/api/admin/fathers/updateProfile/${params?.father_id}`, request) .then(response => { if(isMountedRef.current) return; setSubmit(false); switch(response.data.status_code){ case 200: { navigator(`/admin/parent/detail/${params?.father_id}`, { state: response.data.success_messages }); break; } case 400: set400Error(response.data.error_messages); break; case 401: set401Error(response.data.error_messages); break; case 422: window.scrollTo(0, 0); set422Errors(response.data.error_messages); break; } }) } } return (

プロフィール編集

{ !loaded && } { loaded && parent &&
setLimit(e.target.value)}/> { (_422errors.relation_limit || _401error) && { _422errors.relation_limit || _401error} }
setCompany(e.target.value)}/> { _422errors.company && { _422errors.company } }
setEmail(e.target.value)}/> { _422errors.email && { _422errors.email } }
setTelephone(e.target.value)}/> { _422errors.tel && { _422errors.tel } }