import React, { useEffect, useState } from 'react'; import moment from 'moment'; import axios from 'axios'; import ModalSettingNotify from '../../component/modal_setting_notify'; import { ToastContainer, toast } from 'react-toastify'; import ModalMemo from '../../component/modal_memo'; import ModalConfirm from '../../component/modal_confirm'; import ModalAlert from '../../component/modal_alert'; import ModalPdf from '../../component/pdf/modal_pdf'; import Notification from '../../component/notification'; import { useHistory, Link } from 'react-router-dom'; import { CircularProgress } from '@material-ui/core'; const MeetingDetail = (props) => { const history = useHistory(); const [loaded, setLoaded] = useState(false); const [submit, setSubmit] = useState(false); const [ notice, setNotice] = useState(localStorage.getItem('notice')); const [showConfirm, setShowConfirm] = useState(false); const [showArea, setShowArea] = useState(false); const [showMemo, setShowMemo] = useState(false); const [showNotify, setShowNotify] = useState(false); const [showAlert, setShowAlert] = useState(false); const [showPdf, setShowPdf] = useState(false); const [messageAlert, setMessageAlert] = useState(null); const [typeAlert, setTypeAlert] = useState(null); const [meeting, setMeeting] = useState(null); const [thumbnail, setThumbnail] = useState(null); const state = history.location.state useEffect(() => { let father_id = document.getElementById('father_id').value; setLoaded(false); axios.get(`/api/fathers/meetings/detail/${props.match.params?.id}`, {params: { father_id: father_id}}) .then((response) => { setLoaded(true); setNotice(response.data.notice); if(response.data.status_code==200){ console.log(response.data.params); 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}); setThumbnail(response.data.params.meeting_image[0]?.image); } else if(response.data.status_code==400){ //TODO } }); }, []); async function showModalConfirm() { setShowConfirm(true); }; async function handleCloseConfirm() { setShowConfirm(false); }; async function handleAcceptDelete() { try { axios.delete(`/api/meetings/delete/${props.match.params?.id}`) .then(response => { if(response.data.status_code == 200){ axios.delete(`/api/meeting-images/deleteRelationMeeting/${props.match.params?.id}`) .then(response => {}); axios.delete(`/api/meeting-approvals/deleteRelationMeeting/${props.match.params?.id}`) .then(response => { setMessageAlert("ミーティングの削除に成功しました!"); setTypeAlert("success"); }); } else { setMessageAlert("ミーティングの削除に失敗しました。"); setTypeAlert("danger"); } setShowAlert(true); }); setShow(false); } catch (error) { console.log('error', error); } }; async function showModalMemo() { setShowMemo(true); }; async function showModalArea() { setShowArea(true); }; async function showModalNotify() { setShowNotify(true); }; async function handleCloseNotify() { setShowNotify(false); }; async function handleClosePdf() { setShowPdf(false); }; async function handleCloseMemo() { setShowMemo(false); }; async function handleAcceptNotify() { try { axios.post(`/api/fathers/children/listOfMeetingNotifyUnapprovel/${props.match.params?.id}`) .then(response => { if(response.data.status_code == 200){ axios.delete(`/api/smss/register/${props.match.params?.id}`) .then(response => { }); } }); setShowNotify(false); } catch (error) { console.log('error', error); } }; async function handleCloseAlert() { setShowAlert(false); }; async function handleFavorite(meetingId, currentFavorite) { const formdata = new FormData(); formdata.append('meeting_id', meetingId); formdata.append('is_favorite', currentFavorite == 1 ? 0 : 1); axios.post('/api/meetings/registerFavorite', formdata).then((response) => {}) const updatedItem = { ...meeting, is_favorite: currentFavorite == 1 ? 0 : 1, }; setMeeting(updatedItem); }; if (!meeting) return null; return (

ミーティング詳細

{ !loaded && } { loaded &&
  • {meeting?.numerator}
  • {meeting?.denominator}
    { meeting?.approval.map((v, inx) =>
  • name
  • ) }

{ meeting.title }

{ thumbnail && thumbnail }
{ meeting?.meeting_image.map((v, inx) =>
setThumbnail(v.image)} key={inx}>
) } { [...Array(10-meeting.meeting_image.length)].map((x, k)=>
) }

{ meeting.text }

}
) } export default MeetingDetail;