import { useRef, useEffect, useState } from 'react'; import { useNavigate, Link, useLocation, useParams } from 'react-router-dom'; import moment from 'moment'; import Alert from '../../component/alert'; import ModalPdf from '../../component/pdf/modal_pdf'; import ModalMemo from '../../component/modal_memo'; import ModalConfirm from '../../component/modal_confirm'; import Thumbnail from '../../component/thumbnail'; import PageLoader from '../../component/page_loader'; const AdminMeetingDetail = () => { const navigator = useNavigate(); const location = useLocation(); const params = useParams(); const [loaded, setLoaded] = useState(false); const [submit, setSubmit] = useState(false); const [meeting, setMeeting] = useState(null); const [thumbnail, setThumbnail] = useState(''); const [_400error, set400Error] = useState(''); const [_success, setSuccess] = useState(location.state); const [show_confirm_modal, setShowConfirmModal] = useState(false); const [show_pdf_modal, setShowPDFModal] = useState(false); const [show_memo_modal, setShowMemoModal] = useState(false); const isMountedRef = useRef(true); useEffect( async () => { isMountedRef.current = false; setLoaded(false); await axios.get(`/api/admin/meetings/detail/${params?.meeting_id}`) .then((response) => { setLoaded(true); if(response.data.status_code==200){ var list = response.data.params; var total=0, num=0; if(list.approval){ for(var i in list.approval) { if(list.approval[i].approval_at) num ++; total ++; } } setMeeting({...list, denominator:total, numerator:num}); if(list.meeting_image.length > 0) setThumbnail(list.meeting_image[0].image); } else { set400Error("失敗しました。"); } }); }, []); async function handleAcceptDelete() { setSubmit(true); await axios.delete(`/api/admin/meetings/delete/${params?.meeting_id}`) .then(response => { setShowConfirmModal(false); setSubmit(false); switch(response.data.status_code){ case 200:{ navigator('/admin/meeting', {state: '削除に成功しました!'}); break; } case 400: set400Error("削除に失敗しました。"); break; } }); }; const handlePDFOpen = (pdf) => { var pieces = pdf.split('/'); var file_name = pieces[pieces.length-1]; window.open(`/pdf/${file_name}`, '_blank'); } return (

ミーティング詳細

{ !loaded && } { loaded && meeting &&
  • {meeting.numerator}
  • {meeting.denominator}
    { meeting.approval?.map((x, k)=> { if(x.approval_at) return(
  • name
  • ) }) }

{ meeting.title }

{ meeting.meeting_image?.map((x, k)=>
{x.image}setThumbnail(x.image)}/>
) }
{ meeting.memo ?

{ meeting.text }

setShowMemoModal(false)} /> setShowPDFModal(false)} />
}
setShowConfirmModal(false)} handleAccept={handleAcceptDelete} loading={submit} /> { _400error && set400Error('')}> {_400error} } { _success && setSuccess('')}> {_success} }
) } export default AdminMeetingDetail;