import React, { useEffect, useState } from 'react'; import moment from 'moment'; import axios from 'axios'; import { ToastContainer, toast } from 'react-toastify'; import { useHistory, Link } from 'react-router-dom'; import { CircularProgress } from '@material-ui/core'; import ModalMemo from '../../component/modal_memo'; import ModalConfirm from '../../component/modal_confirm'; import ModalPdf from '../../component/pdf/modal_pdf'; import Notification from '../notification'; import ModalSettingNotify from '../../component/modal_setting_notify'; import Alert from '../../component/alert'; const MeetingDetail = (props) => { const history = useHistory(); const [loaded, setLoaded] = useState(false); const [submit_delete, setSubmitDelete] = useState(false); const [submit_notify, setSubmitNotify] = useState(false); const [notice, setNotice] = useState(localStorage.getItem('notice')); const [_success_delete, setSuccessDelete] = useState(''); const [_success_notify, setSuccessNotify] = useState(''); const [_400error, set400Error] = useState(''); const [showDelete, setShowDelete] = useState(false); const [showSettingNotify, setShowSettingNotify] = useState(false); const [showMemo, setShowMemo] = useState(false); const [showNotify, setShowNotify] = useState(false); const [showPdf, setShowPdf] = useState(false); const [meeting, setMeeting] = useState(null); const [thumbnail, setThumbnail] = useState(null); useEffect(() => { let father_id = document.getElementById('father_id').value; setLoaded(false); axios.get(`/api/fathers/meetings/detail/${props.match.params?.meeting_id}`, {params: { father_id: father_id}}) .then((response) => { console.log(response.data.params); setLoaded(true); setNotice(response.data.notice); if(response.data.status_code==200){ var list = response.data.params; var total=0, num=0; if(list.approvals){ for(var i in list.approvals) { if(list.approvals[i].approval_at) num ++; total ++; } } setMeeting({...list, denominator:total, numerator:num}); setThumbnail(response.data.params.meeting_image[0]?.image); } }); }, []); const handleAcceptDelete = () => { setSubmitDelete(true); axios.delete(`/api/fathers/meetings/delete/${props.match.params?.meeting_id}`) .then(response => { setSubmitDelete(false); setShowDelete(false); switch(response.data.status_code){ case 200: setSuccessDelete('ミーティングの削除に成功しました!'); break; case 400: set400Error('ミーティングの削除に失敗しました。'); break; } }); }; 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/fathers/meetings/registerFavorite', formdata) .then(response => { setNotice(response.data.notice); if(response.data.status_code == 200){ const updatedItem = { ...meeting, is_favorite: currentFavorite == 1 ? 0 : 1, }; setMeeting(updatedItem); } }) }; const handleNotifyAllChild = () => { setSubmitNotify(true); axios.get('/api/fathers/meeting/approvals/listChildrenOfUnapprovel', {params:{meeting_id: props.match.params?.meeting_id}}) .then(response => { if(response.data.status_code == 200){ var list = response.data.params; const tel_list = []; for(var i in list){ tel_list.push(list[i].child.tel); } const formdata = new FormData(); formdata.append('tel', JSON.stringify(tel_list)); formdata.append('meeting_id', props.match.params.meeting_id); axios.post('/api/fathers/approvalNotification', formdata) .then(response=>{ setSubmitNotify(false); setShowNotify(false); switch(response.data.status_code){ case 200: setSuccessNotify('SMSの送信に成功しました!'); break; case 400: set400Error('SMSの送信に失敗しました。'); break; } }) } }); } return (

ミーティング詳細

{ !loaded && !meeting && } { loaded && meeting &&
setShowSettingNotify(true)} data-url="login.html" className="meeting-member-link">
  • {meeting?.numerator}
  • {meeting?.denominator}
    { meeting.approvals?.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 }

setShowSettingNotify(false)} /> setShowMemo(false)} /> setShowDelete(false)} handleAccept={handleAcceptDelete} loading={submit_delete} /> setShowNotify(false)} handleAccept={handleNotifyAllChild} loading = {submit_notify} /> setShowPdf(false)} />
}
{ _400error && {_400error} } { _success_notify && {_success_notify} } { _success_delete && history.push({ pathname: "/p-account/meeting", state: {} })}>{_success_delete} }
) } export default MeetingDetail;