import React, { useEffect, useState } from 'react'; import { useHistory } from 'react-router-dom'; import axios from 'axios'; import { CircularProgress } from '@material-ui/core'; import { LoadingButton } from '@material-ui/lab'; import IconButton from '@mui/material/IconButton'; import RemoveIcon from '@mui/icons-material/Remove'; import { ToastContainer, toast } from 'react-toastify'; import 'react-toastify/dist/ReactToastify.css'; import Alert from '../../component/alert'; const MeetingEdit = (props) => { const history = useHistory(); const [title, setTitle] = useState(''); const [memo, setMemo] = useState(''); const [text, setText] = useState(''); const [pdf, setPdf] = useState(''); const [meeting_image, setMeetingImages] = useState([]); const [approval_list, setApproval] = useState([]); const [_422errors, set422Errors] = useState({title:'', text:'', memo:'', pdf:'', image:''}) const [_400error, set400Error] = useState(''); const [_success, setSuccess] = useState(''); const [loaded, setLoaded] = useState(false); const [submit, setSubmit] = useState(false); const [check_radio, setCheckRadio] = useState(false); const [selectedIndex, setSelectedIndex] = useState([]); useEffect(() => { setLoaded(false); axios.get(`/api/admin/meetings/detail/${props.match.params?.meeting_id}`) .then(response => { setLoaded(true); if(response.data.status_code==200){ setTitle(response.data.params?.title); setMemo(response.data.params?.memo); setText(response.data.params?.text); setMeetingImages(response.data.params?.meeting_image); setApproval(response.data.params?.approval); setPdf(response.data.params?.pdf); } else if(response.data.status_code==400){ //TODO } }); }, []); const handleSubmit = (e) => { e.preventDefault(); set422Errors({title:'',memo:'',text:'',pdf:'',image:''}); try { const request = { title: title, text: text, memo: memo, pdf: pdf }; setSubmit(true); axios.put(`/api/admin/meetings/update/${props.match.params?.meeting_id}`, request) .then(response => { setSubmit(false); switch(response.data.status_code){ case 200: setSuccess("更新成功しました!"); break; case 400: set400Error("更新失敗しました。"); break; case 422: set422Errors(response.data.error_messages); break; } }); } catch (error) { console.log('error', error); } } const handleImageChange = (e) => { e.preventDefault(); let reader = new FileReader(); let _file = e.target.files[0]; reader.readAsDataURL(_file); reader.onloadend = () => { const formdata = new FormData(); formdata.append('image', reader.result); axios.post(`/api/admin/meeting/images/register`, formdata, {params:{meeting_id: props.match.params.meeting_id}}) .then(response => { switch(response.data.status_code){ case 200: setMeetingImages(response.data.params); notify_save(); break; case 400: set400Error(response.data.error_messages); break; case 422: set422Errors(response.data.error_messages); break; } }); }; }; const handlePDFChange = (e) => { e.preventDefault(); let reader = new FileReader(); let _file = e.target.files[0]; reader.readAsDataURL(_file); reader.onloadend = () => { setPdf(reader.result); } } const handleDeleteImage = (image_id) => { axios.delete(`/api/admin/meeting/images/delete/${props.match.params?.meeting_id}`, {params:{image_id: image_id}}) .then(response=>{ switch(response.data.status_code){ case 200: setMeetingImages(response.data.params); notify_delete(); break; case 400: set400Error("画像の削除に失敗しました。"); } }) } const handleApproval = (e) => { console.log(e.target.value); } const notify_delete = () => toast.success("削除成功しました。", { position: "top-right", autoClose: 5000, className:"bg-danger", hideProgressBar: true, closeOnClick: true, pauseOnHover: true, draggable: false, progress: undefined, style:{ color: '#ffffff'} }); const notify_save = () => toast.success("更新が成功しました。", { position: "top-right", autoClose: 5000, className:"bg-danger", hideProgressBar: true, closeOnClick: true, pauseOnHover: true, draggable: false, progress: undefined, style:{ color: '#ffffff'} }); return (

ミーティング編集

{ !loaded && } { loaded &&
setTitle(e.target.value)} className={`input-default input-title input-h60 input-w480 ${ _422errors.title && 'is-invalid c-input__target'} `} id="title" /> { _422errors.title && {_422errors.title} }