import React, { useRef, useEffect, useState } from 'react'; import ja from "date-fns/locale/ja"; import DatePicker, { registerLocale } from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; registerLocale("ja", ja); import moment from 'moment'; import { LoadingButton } from '@material-ui/lab'; import Notification from '../../component/notification'; import Alert from '../../component/alert'; import PageLoader from '../../component/page_loader'; import { useNavigate, useParams } from 'react-router-dom'; const ParentChildEdit = () => { const navigator = useNavigate(); const params = useParams(); const [notice, setNotice] = useState(localStorage.getItem('notice')); const [_success, setSuccess] = useState(''); const [_400error, set400Error] = useState(''); const [_404error, set404Error] = useState(''); const [_422errors, set422Errors] = useState({hire_at: ''}); const [hire_at, setHireAt] = useState(null); const [submit, setSubmit] = useState(false); const [loaded, setLoaded] = useState(false); const father_id = localStorage.getItem('kiki_acc_id'); const child_id = params?.child_id; const isMountedRef = useRef(true); useEffect( async () => { isMountedRef.current = false; setLoaded(false); await axios.get('/api/fathers/children/detail/'+child_id, {params:{father_id: father_id}}) .then(response => { setNotice(response.data.notice); setLoaded(true); if(response.data.status_code==200){ let hire_at = moment(response.data.params.father_relations?.hire_at).toDate(); setHireAt(hire_at); } else { set400Error("失敗しました。"); } }) .catch(err=>{ setLoaded(true); setNotice(err.response.data.notice); if(err.response.status==404){ set404Error(err.response.data.message); } }) },[]); const handleSubmit = async (e) => { e.preventDefault(); set422Errors({hire_at: ''}); const request = { father_id: father_id, hire_at: hire_at } setSubmit(true); await axios.put(`/api/fathers/relations/updateHireDate/${child_id}`, request) .then(response => { setSubmit(false); setNotice(response.data.notice); switch(response.data.status_code){ case 200:{ navigator('/p-account/child/detail/'+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 && hire_at &&
setHireAt(date)} dateFormat="yyyy/MM/dd" locale="ja" /> { _422errors.hire_at && {_422errors.hire_at} }
変更内容を保存する
}
{ _success && setSuccess('')}>{_success} } { _400error && set400Error('')}>{_400error} } { _404error && { set404Error(''); navigator('/p-account/child', {state: ''}) }}> {_404error} }
) } export default ParentChildEdit;