import React, { useEffect, useState } from 'react'; import axios from 'axios'; import { useHistory, Link } from 'react-router-dom'; import moment from 'moment'; import { CircularProgress } from '@material-ui/core'; import IconButton from '@mui/material/IconButton'; import Notification from '../notification'; import Alert from '../../component/alert'; import InfiniteScroll from "react-infinite-scroll-component"; const INFINITE = 5; const SCROLL_DELAY_TIME = 1500; const Meeting = () => { const [notice, setNotice] = useState(localStorage.getItem('notice')); const [tab_status, setTabStatus] = useState(false); const [loaded, setLoaded] = useState(false); const [loaded1, setLoaded1] = useState(false); const [loaded2, setLoaded2] = useState(false); const [meeting_list_incomplete, setMeetingListIncomplete] = useState([]); const [meeting_list_complete, setMeetingListComplete] = useState([]); const [fetch_meeting_list_incomplete, setFetchMeetingListIncomplete] = useState([]); const [fetch_meeting_list_complete, setFetchMeetingListComplete] = useState([]); const [_success, setSuccess] = useState(''); useEffect(()=>{ if(localStorage.getItem("from_login")){ setSuccess("ログインに成功しました!"); localStorage.removeItem("from_login"); } },[]); useEffect(()=>{ setLoaded(loaded1 && loaded2); },[loaded1, loaded2]) useEffect(() => { setLoaded(false); let father_id = document.getElementById('father_id').value; if(localStorage.getItem('flag')=="true") return; axios.get('/api/fathers/meetings/listOfIncompleteOfFather', {params:{father_id: father_id}}) .then(response => { setLoaded1(true); setNotice(response.data.notice); console.log(response.data); if(response.data.status_code==200){ var list = response.data.params; var arr = []; for(var i in list){ var total=0, num=0; for(var j in list[i].approvals) { if(list[i].approvals[j].approval_at) num ++; total ++; } arr.push({...list[i], denominator:total, numerator:num}) } setMeetingListIncomplete(arr); var len = arr.length; if(len > INFINITE) setFetchMeetingListIncomplete(arr.slice(0, INFINITE)); else setFetchMeetingListIncomplete(arr.slice(0, len)); } }) axios.get('/api/fathers/meetings/listOfCompleteOfFather', {params:{father_id: father_id}}) .then(response => { setLoaded2(true); setNotice(response.data.notice); console.log(response.data); if(response.data.status_code==200){ var list = response.data.params; var arr = []; for(var i in list){ var total=0, num=0; for(var j in list[i].approvals) { if(list[i].approvals[j].approval_at) num ++; total ++; } arr.push({...list[i], denominator:total, numerator:num}) } setMeetingListComplete(arr); var len = arr.length; if(len > INFINITE) setFetchMeetingListComplete(arr.slice(0, INFINITE)); else setFetchMeetingListComplete(arr.slice(0, len)); } }) },[]); const fetchMoreListNonApproval = () => { setTimeout(() => { var x = fetch_meeting_list_incomplete.length; var y = meeting_list_incomplete.length; var c = 0; if(x+INFINITE < y) c = INFINITE; else c = y - x; setFetchMeetingListIncomplete(meeting_list_incomplete.slice(0, x+c)); }, SCROLL_DELAY_TIME); }; const fetchMoreListApproval = () => { setTimeout(() => { var x = fetch_meeting_list_complete.length; var y = meeting_list_complete.length; var c = 0; if(x+INFINITE < y) c = INFINITE; else c = y - x; setFetchMeetingListComplete(meeting_list_complete.slice(0, x+c)); }, SCROLL_DELAY_TIME); }; async function handleFavorite(meetingId, currentFavorite, stateName) { 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=>{ if(response.data.status_code==200){ if(stateName == "inCompleteOfFather") { const newList = meeting_list_incomplete.map((item) => { if (item.id === meetingId) { const updatedItem = { ...item, is_favorite: currentFavorite == 1 ? 0 : 1, }; return updatedItem; } return item; }); setMeetingListIncomplete(newList); setFetchMeetingListIncomplete(newList.slice(0, fetch_meeting_list_incomplete.length)); } else { const newList = meeting_list_complete.map((item) => { if (item.id === meetingId) { const updatedItem = { ...item, is_favorite: currentFavorite == 1 ? 0 : 1, }; return updatedItem; } return item; }); setMeetingListComplete(newList); setFetchMeetingListComplete(newList.slice(0, fetch_meeting_list_complete.length)); } } }) }; return (

ミーティング一覧

ミーティングを追加
{ !loaded && } { loaded &&
{ !tab_status &&
} style={{overflow:'none', position:'relative'}} > { fetch_meeting_list_incomplete.length > 0 ? fetch_meeting_list_incomplete?.map((item, id) =>

{ item.title }

{ item.text }

  • {item.numerator}
  • {item.denominator}
    { item.approvals?.map((v, inx1) =>
  • name
  • ) }
) :

データはありません。

}
} { tab_status &&
} style={{overflow:'none', position:'relative'}} > { fetch_meeting_list_complete.length > 0 ? fetch_meeting_list_complete?.map((item, id) =>

{ item.title }

{ item.text }

  • {item.numerator}
  • {item.denominator}
    { item.approvals?.map((v, inx1) =>
  • name
  • ) }
) :

データはありません。

}
}
} { _success && {_success} } ) } export default Meeting;