import React, { useState, useRef, useEffect, 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'; const AdminChildPasswordEdit = () => { const navigator = useNavigate(); const params = useParams(); const { isAuthenticate } = useContext(HeaderContext); const [password, setPassword] = useState(''); const [password_confirmation, setConfirmPassword] = useState(''); const [_422errors, set422Errors] = useState({ password:'', password_confirmation:'' }); const [_400error, set400Error] = useState(''); const [_success, setSuccess] = useState(''); const [submit, setSubmit] = useState(false) const isMountedRef = useRef(true); useEffect(() => { isMountedRef.current = false; return () => { isMountedRef.current = true; } }, []) const handleSubmit = (e) => { e.preventDefault(); if(isAuthenticate()){ set422Errors({ password:'', password_confirmation:'' }); setSubmit(true); const request = { password: password, password_confirmation: password_confirmation } axios.put(`/api/admin/children/updatePassword/${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 (

パスワード編集

setPassword(e.target.value)} autoFocus/> { _422errors.password && { _422errors.password } }
setConfirmPassword(e.target.value)}/> { _422errors.password_confirmation && { _422errors.password_confirmation } }
パスワードを更新 { _400error && set400Error('')}> {_400error} } { _success && setSuccess('')}> {_success} }
) } export default AdminChildPasswordEdit;