mirror of
https://github.com/myfatemi04/wheelshare-frontend.git
synced 2025-04-18 18:10:16 -04:00
56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import { useCallback, useState } from 'react';
|
|
import UIButton from './UIButton';
|
|
import UIDatetimeInput from './UIDatetimeInput';
|
|
import UIPlacesAutocomplete from './UIPlacesAutocomplete';
|
|
import UISecondaryBox from './UISecondaryBox';
|
|
import UITextInput from './UITextInput';
|
|
|
|
export default function EventCreator() {
|
|
const [name, setName] = useState('');
|
|
const [startTime, setStartTime] = useState<Date | null>(null);
|
|
const [endTime, setEndTime] = useState<Date | null>(null);
|
|
const [placeId, setPlaceId] = useState<string | null>(null);
|
|
const [groupId, setGroupId] = useState('');
|
|
|
|
const createEvent = useCallback(() => {
|
|
fetch('http://localhost:5000/api/events', {
|
|
method: 'post',
|
|
body: JSON.stringify({
|
|
name,
|
|
startTime,
|
|
endTime,
|
|
groupId,
|
|
placeId,
|
|
}),
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
});
|
|
}, [name, startTime, endTime, groupId, placeId]);
|
|
|
|
return (
|
|
<UISecondaryBox style={{ width: '100%', boxSizing: 'border-box' }}>
|
|
<h1 style={{ textAlign: 'center' }}>Create Event</h1>
|
|
Name
|
|
<UITextInput value={name} onChangeText={setName} />
|
|
<br />
|
|
Group
|
|
<UITextInput value={groupId} onChangeText={setGroupId} />
|
|
<br />
|
|
Start time
|
|
<UIDatetimeInput onChangedDate={setStartTime} />
|
|
<br />
|
|
End time
|
|
<UIDatetimeInput onChangedDate={setEndTime} />
|
|
<br />
|
|
Location
|
|
<UIPlacesAutocomplete
|
|
onSelected={(address, placeId) => {
|
|
setPlaceId(placeId);
|
|
}}
|
|
/>
|
|
<UIButton onClick={createEvent}>Create Event</UIButton>
|
|
</UISecondaryBox>
|
|
);
|
|
}
|