50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
import React, { useEffect, useState } from 'react';
|
|
import { Panel, Divider, List, Icon, FlexboxGrid } from 'rsuite';
|
|
|
|
import { NavBar, MeetingList } from '../components';
|
|
|
|
import './styles/layout.less';
|
|
import { backend } from '../helpers/http-common';
|
|
|
|
export default function Dashboard({ currentUser }) {
|
|
const [meetings, setMeetings] = useState([]);
|
|
const [confirmed, setConfirmed] = useState();
|
|
const [unconfirmed, setUnconfirmed] = useState();
|
|
|
|
useEffect(() => {
|
|
backend
|
|
.get(`/accounts/${currentUser.id}/meetings`)
|
|
.then((response) => {
|
|
const allMeetings = response.data;
|
|
|
|
const confirmed = allMeetings.filter(
|
|
(meeting) => meeting.start_time,
|
|
);
|
|
const unconfirmed = allMeetings.filter(
|
|
(meeting) => !meeting.start_time,
|
|
);
|
|
|
|
setConfirmed(confirmed);
|
|
setUnconfirmed(unconfirmed);
|
|
setMeetings(allMeetings);
|
|
})
|
|
.catch((error) => console.log(error));
|
|
}, []);
|
|
|
|
return (
|
|
<>
|
|
<NavBar title='Dashboard' />
|
|
<Panel className={'app-container'}>
|
|
<h2>Invitations</h2>
|
|
{meetings.length === 0 && <p>You have no meetings.</p>}
|
|
{confirmed && (
|
|
<MeetingList meetings={confirmed} status={'Confirmed'} />
|
|
)}
|
|
{unconfirmed && (
|
|
<MeetingList meetings={unconfirmed} status={'To confirm'} />
|
|
)}
|
|
</Panel>
|
|
</>
|
|
);
|
|
}
|