Skip to content

Commit 7869fc3

Browse files
Merge pull request #197 from UtkarshUmap/main
Add calendar to DashBoard
2 parents 4d1d2e0 + 1332a3a commit 7869fc3

File tree

7 files changed

+368
-28
lines changed

7 files changed

+368
-28
lines changed

frontend/package-lock.json

Lines changed: 62 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"jwt-decode": "^3.1.2",
2424
"lucide-react": "^0.477.0",
2525
"react": "^18.2.0",
26+
"react-calendar": "^6.0.0",
2627
"react-chartjs-2": "^5.3.0",
2728
"react-dom": "^18.2.0",
2829
"react-hot-toast": "^2.5.2",

frontend/src/Components/Events/EventForm.jsx

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,12 @@ const initialFormState = {
184184
},
185185
};
186186

187+
const getDateFromISO = (iso) =>
188+
iso ? new Date(iso).toISOString().slice(0, 10) : "";
189+
190+
const getTimeFromISO = (iso) =>
191+
iso ? new Date(iso).toISOString().slice(11, 16) : "";
192+
187193
const EventForm = ({ addEvent, setAddEvent, event = null, onClose }) => {
188194
const [units, setUnits] = useState([]);
189195
const [users, setUsers] = useState([]);
@@ -197,20 +203,12 @@ const EventForm = ({ addEvent, setAddEvent, event = null, onClose }) => {
197203
organizers: event?.organizers?.map((o) => o._id) || [],
198204
schedule: {
199205
date: {
200-
start: event
201-
? new Date(event.schedule.start).toISOString().slice(0, 10)
202-
: "",
203-
end: event
204-
? new Date(event.schedule.end).toISOString().slice(0, 10)
205-
: "",
206+
start: event ? getDateFromISO(event.schedule.start) : "",
207+
end: event ? getDateFromISO(event.schedule.end) : "",
206208
},
207209
time: {
208-
start: event
209-
? new Date(event.schedule.start).toTimeString().slice(0, 5)
210-
: "",
211-
end: event
212-
? new Date(event.schedule.end).toTimeString().slice(0, 5)
213-
: "",
210+
start: event ? getTimeFromISO(event.schedule.start) : "",
211+
end: event ? getTimeFromISO(event.schedule.end) : "",
214212
},
215213
venue: event?.schedule?.venue || "",
216214
mode: event?.schedule?.mode || "",
@@ -219,18 +217,18 @@ const EventForm = ({ addEvent, setAddEvent, event = null, onClose }) => {
219217
required: event?.registration?.required || false,
220218
date: {
221219
start: event?.registration?.start
222-
? new Date(event.registration.start).toISOString().slice(0, 10)
220+
? getDateFromISO(event.registration.start)
223221
: "",
224222
end: event?.registration?.end
225-
? new Date(event.registration.end).toISOString().slice(0, 10)
223+
? getDateFromISO(event.registration.end)
226224
: "",
227225
},
228226
time: {
229227
start: event?.registration?.start
230-
? new Date(event.registration.start).toTimeString().slice(0, 5)
228+
? getTimeFromISO(event.registration.start)
231229
: "",
232230
end: event?.registration?.end
233-
? new Date(event.registration.end).toTimeString().slice(0, 5)
231+
? getTimeFromISO(event.registration.end)
234232
: "",
235233
},
236234
fees: event?.registration?.fees || "",
@@ -322,10 +320,15 @@ const EventForm = ({ addEvent, setAddEvent, event = null, onClose }) => {
322320
}));
323321
};
324322

323+
const combineDateTime = (dateStr, timeStr, isEnd = false) => {
324+
if (!dateStr) return null;
325+
const defaultTime = isEnd ? "23:59" : "00:00";
326+
const time = timeStr && timeStr !== "" ? timeStr : defaultTime;
327+
return new Date(`${dateStr}T${time}:00`).toISOString();
328+
};
329+
325330
const handleSubmit = async (e) => {
326331
e.preventDefault();
327-
const combineDateTime = (dateStr, timeStr) =>
328-
new Date(`${dateStr}T${timeStr}`);
329332
const finalPayload = {
330333
...formData,
331334
schedule: {
@@ -337,6 +340,7 @@ const EventForm = ({ addEvent, setAddEvent, event = null, onClose }) => {
337340
end: combineDateTime(
338341
formData.schedule.date.end,
339342
formData.schedule.time.end,
343+
true,
340344
),
341345
},
342346
registration: formData.registration.required
@@ -349,6 +353,7 @@ const EventForm = ({ addEvent, setAddEvent, event = null, onClose }) => {
349353
end: combineDateTime(
350354
formData.registration.date.end,
351355
formData.registration.time.end,
356+
true,
352357
),
353358
}
354359
: { required: false },
@@ -438,6 +443,7 @@ const EventForm = ({ addEvent, setAddEvent, event = null, onClose }) => {
438443
/>
439444
</div>
440445

446+
441447
<div className="grid grid-cols-2 gap-4">
442448
<div>
443449
<label className={labelStyles}>Category</label>
@@ -460,6 +466,7 @@ const EventForm = ({ addEvent, setAddEvent, event = null, onClose }) => {
460466
</div>
461467
<div>
462468
<label className={labelStyles}>Type</label>
469+
463470
<input
464471
name="type"
465472
value={formData.type}

0 commit comments

Comments
 (0)