diff options
Diffstat (limited to 'src/components/EventCard')
-rw-r--r-- | src/components/EventCard/EventCard.tsx | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/components/EventCard/EventCard.tsx b/src/components/EventCard/EventCard.tsx index 192d0b3..bd09c45 100644 --- a/src/components/EventCard/EventCard.tsx +++ b/src/components/EventCard/EventCard.tsx @@ -7,12 +7,14 @@ import { Button } from '@material-ui/core'; import { Event } from '../../types'; +import { patch } from '../../requests'; interface PropTypes { event: Event; + mutate: () => void; } -const EventCard: React.FC<PropTypes> = ({ event }) => { +const EventCard: React.FC<PropTypes> = ({ event, mutate }) => { const { data: { name, @@ -23,9 +25,15 @@ const EventCard: React.FC<PropTypes> = ({ event }) => { } } = event; + const handleJoin = () => { + // TODO: add your username to participants list + const update = { data: { participants: [...participants, Math.random()] }} + return patch(`/events/${event._id}`, update).then(() => mutate()); + }; + return ( <Card variant="outlined"> - <CardHeader title={name || 'Event'} subheader={date} /> + <CardHeader title={name || `Event #${event._id.slice(-4)}`} subheader={date} /> <CardContent> {conferenceId && <div> ConferenceID: {conferenceId} </div>} {attendanceId && <div> AttendanceID: {attendanceId} </div>} @@ -40,7 +48,12 @@ const EventCard: React.FC<PropTypes> = ({ event }) => { </CardContent> {(participants?.length || 0) < 3 && ( <CardActions> - <Button variant="contained" color="primary" size="large"> + <Button + onClick={handleJoin} + variant="contained" + color="primary" + size="large" + > Join </Button> </CardActions> |