import React, { useRef, useEffect, useState } from 'react'; import { useNavigate, Link, useLocation } from 'react-router-dom'; import IconButton from "@material-ui/core/IconButton"; import PhotoCameraOutlinedIcon from '@mui/icons-material/PhotoCameraOutlined'; import Alert from '../../component/alert'; import PageLoader from '../../component/page_loader'; import ModalConfirm from '../../component/modal_confirm'; const Transition = React.forwardRef(function Transition(props, ref) { return ; }); const AdminParentDetail = (props) => { const navigator = useNavigate(); const location = useLocation(); const [image, setImage] = useState(''); const [loaded, setLoaded] = useState(false); const [submit, setSubmit] = useState(false); const [submit_image, setSubmitImage] = useState(false); const [parent, setParent] = useState(null); const [_400error, set400Error] = useState(''); const [_422errors, set422Errors] = useState({image: ''}); const [_success, setSuccess] = useState(location.state); const [show_confirm_modal, setShowConfirmModal] = useState(false); const isMountedRef = useRef(true); useEffect(() => { isMountedRef.current = false; setLoaded(false); axios.get(`/api/admin/fathers/detail/${props.match.params?.father_id}`) .then(response => { setLoaded(true); if(response.data.status_code==200){ setParent(response.data.params); setImage(response.data.params.image); } else{ set400Error("失敗しました。"); } }) },[]); const handleImageChange = (e) => { e.preventDefault(); let reader = new FileReader(); let _file = e.target.files[0]; reader.readAsDataURL(_file); reader.onloadend = async () => { set422Errors({image: ''}); setSubmitImage(true); await axios.put(`/api/admin/fathers/updateImage/${props.match.params?.father_id}`, {image: reader.result}) .then(response => { setSubmitImage(false); switch(response.data.status_code){ case 200: { setImage(reader.result); setSuccess(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; } }); }; }; async function handleAcceptDelete() { setSubmit(true); await axios.delete(`/api/admin/fathers/delete/${props.match.params?.father_id}`) .then(response => { setShowConfirmModal(false); setSubmit(false); if(response.data.status_code == 200){ navigator('/admin/parent', { state: '削除に成功しました!' }); } else { set400Error("削除に失敗しました。"); } }); }; return (

親詳細

{ (!loaded || submit_image) && } { loaded && parent &&
handleImageChange(e)}/>
avatar-img
{ _422errors.image && {_422errors.image} }

{parent.company}

People

{`${parent.limit}人`}

{parent.profile ? parent.profile: '未入力'}

プロフィールを変更する
パスワードを変更する
}
setShowConfirmModal(false)} handleAccept={handleAcceptDelete} loading={submit} /> { _400error && set400Error('')}> {_400error} } { _success && setSuccess('')}> {_success} }
) } export default AdminParentDetail;