Skip to content
Snippets Groups Projects
Commit a8169e86 authored by Min Dong Hyeun's avatar Min Dong Hyeun
Browse files

[ADD] Available meeting time

parent d4e20deb
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,7 @@ import { useState } from "react"; ...@@ -2,6 +2,7 @@ import { useState } from "react";
import Input from "../components/Input"; import Input from "../components/Input";
import Button from "../components/Button"; import Button from "../components/Button";
import Calendar from "../components/Calendar"; import Calendar from "../components/Calendar";
import TimeInput from "./TimeInput";
import { useNavigate, useLocation } from "react-router-dom"; import { useNavigate, useLocation } from "react-router-dom";
import axios from "axios"; import axios from "axios";
...@@ -9,8 +10,8 @@ function MeetingInfoForm() { ...@@ -9,8 +10,8 @@ function MeetingInfoForm() {
const [meetingPurpose, setMeetingPurpose] = useState(""); const [meetingPurpose, setMeetingPurpose] = useState("");
const [number, setNumber] = useState(); const [number, setNumber] = useState();
const [endVote, setEndVote] = useState(""); const [endVote, setEndVote] = useState("");
const [start, setStart] = useState(); const [startTime, setStartTime] = useState();
const [end, setEnd] = useState(); const [endTime, setEndTime] = useState();
const navigate = useNavigate(); const navigate = useNavigate();
const location = useLocation(); const location = useLocation();
const { title, password } = location.state; const { title, password } = location.state;
...@@ -28,14 +29,14 @@ function MeetingInfoForm() { ...@@ -28,14 +29,14 @@ function MeetingInfoForm() {
const handleVoteEnd = (event) => { const handleVoteEnd = (event) => {
setEndVote(event.target.value); setEndVote(event.target.value);
} }
const handleStartTimeChange = (selectedHour, selectedMinute) => {
setStartTime(`${selectedHour}:${selectedMinute}`);
};
const handleStart = (event) => { const handleEndTimeChange = (selectedHour, selectedMinute) => {
setStart(event.target.value); setEndTime(`${selectedHour}:${selectedMinute}`);
} };
const handleEnd = (event) => {
setEnd(event.target.value);
}
const handleSubmit = async (event) => { const handleSubmit = async (event) => {
event.preventDefault(); event.preventDefault();
...@@ -64,6 +65,8 @@ function MeetingInfoForm() { ...@@ -64,6 +65,8 @@ function MeetingInfoForm() {
purpose: transformedPurpose, purpose: transformedPurpose,
startDate: usingDate.startDate, startDate: usingDate.startDate,
endDate: usingDate.endDate, endDate: usingDate.endDate,
availableVotingStartTime : startTime,
availableVotingEndTime : endTime,
maxParticipants: number, maxParticipants: number,
voteExpiresAt: endVote voteExpiresAt: endVote
}); });
...@@ -95,21 +98,10 @@ function MeetingInfoForm() { ...@@ -95,21 +98,10 @@ function MeetingInfoForm() {
<Calendar usingDate={usingDate} setUsingDate={setUsingDate} /> <Calendar usingDate={usingDate} setUsingDate={setUsingDate} />
<div className="timeStartEnd"> <div className="timeStartEnd">
시작: 투표 가능 시간
<Input <TimeInput onTimeChange={handleStartTimeChange}/>
type="time" ~
value={start} <TimeInput onTimeChange={handleEndTimeChange}/>
onChange={handleStart}
placeholder="시작"
/>
종료:
<Input
type="time"
value={end}
onChange={handleEnd}
placeholder="종료"
/>
</div> </div>
<Input <Input
type="number" type="number"
......
import { useState } from "react";
function TimeInput({onTimeChange}) {
const [hours, setHours] = useState("00");
const [minutes, setMinutes] = useState("00");
const handleHoursChange = (event) => {
setHours(event.target.value);
onTimeChange(event.target.value, minutes);
};
const handleMinutesChange = (event) => {
setMinutes(event.target.value);
onTimeChange(hours, event.target.value);
};
return (
<div>
<label>
:
<select value={hours} onChange={handleHoursChange}>
{Array.from({ length: 24 }, (_, i) => i.toString().padStart(2, "0")).map((hour) => (
<option key={hour} value={hour}>
{hour}
</option>
))}
</select>
</label>
<label>
:
<select value={minutes} onChange={handleMinutesChange}>
{Array.from({ length: 60 }, (_, i) => i.toString().padStart(2, "0")).map((minute) => (
<option key={minute} value={minute}>
{minute}
</option>
))}
</select>
</label>
</div>
);
}
export default TimeInput;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment