wheelshare-frontend/src/components/Pool.tsx
2021-04-10 13:57:07 -04:00

86 lines
2.3 KiB
TypeScript

import { useState, useEffect, FormEventHandler } from 'react';
import { useParams } from 'react-router';
const Pool = () => {
const id = useParams<{ id: string }>().id;
const [state, setState] = useState({
pool_title: 'TJ Carpool',
id: 1,
pool_text: 'Carpool from TJ track to homes',
start_time: '4/10/2021 3:00 PM',
end_time: '4/10/2021 4:00 PM',
capacity: 2,
participants: [],
comments: ['What is the covid vaccination status of all the participants?'],
});
const callAPI = () => {
fetch(`${process.env.REACT_APP_API_ENDPOINT}/pool/${id}`)
.then((response) => response.json())
.then((data) => {
if (data !== undefined) {
setState(data);
}
});
};
const onComment: FormEventHandler<HTMLFormElement> = (e) => {
e.preventDefault();
fetch(`${process.env.REACT_APP_API_ENDPOINT}/pool/comments`)
.then((response) => response.json())
.then((data) => {
console.log(data);
});
};
useEffect(() => {
callAPI();
}, []);
return (
<div className="bg-dark" style={{ minHeight: '100vh' }}>
<h1
style={{ backgroundColor: '#F1EAE8', fontFamily: 'Impact' }}
className=" d-flex justify-content-center p-4"
>
Pool {id}
</h1>
<div className="container " style={{ fontFamily: 'Courier New' }}>
<div className="card card-body " style={{ backgroundColor: '#F1EAE8' }}>
<h1 className="card-title">{state.pool_title}</h1>
<p className="text-left">
Capacity: {state.participants.length} / {state.capacity}
</p>
<p className="text-left">Start Time: {state.start_time}</p>
<p className="text-left">End Time: {state.end_time}</p>
<p className="text-left">{state.pool_text}</p>
</div>
<form onSubmit={onComment}>
<div id="form-group" className="text-left">
<textarea
className="form-control"
id="comment"
placeholder="Enter comment here..."
/>
<input className="btn btn-primary" type="submit" value="Submit" />
</div>
<br />
</form>
<div className="text-left">
<h4 className="text-white">Comments:</h4>
{state.comments.map((comment) => {
return (
<div
className="card card-body"
style={{ backgroundColor: '#D6D1D0' }}
>
<p className="card-text">{comment}</p>
</div>
);
})}
</div>
</div>
</div>
);
};
export default Pool;