Skip to content

Commit 80e9df9

Browse files
committed
link create lecture to backend and fix iso strings
1 parent 69598aa commit 80e9df9

File tree

3 files changed

+34
-19
lines changed

3 files changed

+34
-19
lines changed

src/pages/courses/index.tsx

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import RootPage from "../root";
22
import Container from "@mui/material/Container";
33
import "./courses.css"; // Import CSS file for additional styling
4-
import { useEffect } from "react";
4+
import { useEffect, useState } from "react";
55
import { useNavigate } from "react-router-dom";
66
import { backend_post, useAxiosRequest } from "../../utils";
77
import { Course, Empty } from "../../types/common";
@@ -20,6 +20,7 @@ const Courses = () => {
2020
Empty,
2121
ResponseData
2222
>();
23+
const [ course_data, setCourseData ] = useState()
2324

2425
const alternatingColor = [
2526
"rgba(255, 255, 255, 0.5)",
@@ -74,13 +75,18 @@ const Courses = () => {
7475
};
7576

7677
const handleCourseClick = (course_id: number) => {
77-
navigate(`/course/${course_id}`);
78+
navigate(`/course/${course_id}/create_lecture`);
7879
};
7980

8081
const handleEnrollment =
8182
(courseId: number, enroll: boolean) =>
8283
(event: React.ChangeEvent<HTMLInputElement>) => {
83-
if (enroll) backend_post("course/enroll/" + courseId, "", true);
84+
if (enroll) {
85+
backend_post("course/enroll/" + courseId, "", true);
86+
// if (response == null) return
87+
// const result = response.map((course : Course) => (course.id == courseId ? { ...course, enrolled: true } : course))
88+
// console.log(result)
89+
}
8490
};
8591

8692
return (

src/pages/create_lecture/index.tsx

+24-15
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,24 @@ import { DesktopDateTimePicker } from '@mui/x-date-pickers/DesktopDateTimePicker
1414
import RootPage from "../root";
1515
import "./create.css"; // Import CSS file for additional styling
1616
import { backend_post } from "../../utils";
17+
import { useParams } from "react-router-dom";
1718

1819
const CreateLecture = () => {
1920
// const navigate = useNavigate();
2021
const [regStatus, setRegStatus] = useState("");
22+
const { id } = useParams();
2123

2224
const handleResponse = (
2325
data: any,
2426
event: React.FormEvent<HTMLFormElement>
2527
) => {
2628
console.log(data);
27-
if (!("course_name" in data) || typeof data["course_name"] !== "string") {
28-
setRegStatus("failed");
29-
return;
30-
} else {
29+
if ("ok" in data) {
3130
setRegStatus("success");
3231
}
32+
else{
33+
setRegStatus("failed");
34+
}
3335
};
3436

3537
// TODO: Add first and last name validation
@@ -40,18 +42,23 @@ const CreateLecture = () => {
4042
const start_time = data.get("start_time")
4143
const end_time = data.get("end_time")
4244

43-
console.log(Date.parse(start_time))
44-
console.log(Date.parse(end_time))
45+
if (start_time == null || end_time == null) return
46+
if (start_time == "" || end_time == "") return
47+
48+
const start_date = new Date(Date.parse(start_time.toString()))
49+
const end_date = new Date(Date.parse(end_time.toString()))
4550

46-
// backend_post(
47-
// "course/create/",
48-
// JSON.stringify({
49-
// course_name: data.get("course_name"),
50-
// })
51-
// )
52-
// .then((resp) => (resp.json()))
53-
// .then((data) => handleResponse(data, event))
54-
// .catch((error) => console.log(error));
51+
backend_post(
52+
"course/lecture/" + id + "/add",
53+
JSON.stringify({
54+
start_time: start_date.toISOString(),
55+
end_time: end_date.toISOString(),
56+
lecture_type: data.get("lecture_type"),
57+
})
58+
)
59+
.then((resp) => (resp.json()))
60+
.then((data) => handleResponse(data, event))
61+
.catch((error) => console.log(error));
5562
};
5663

5764
return (
@@ -82,10 +89,12 @@ const CreateLecture = () => {
8289
<DesktopDateTimePicker
8390
label="Start time"
8491
name="start_time"
92+
slotProps={{ textField: { required: true,},}}
8593
/>
8694
<DesktopDateTimePicker
8795
label="End time"
8896
name="end_time"
97+
slotProps={{ textField: { required: true,},}}
8998
/>
9099
</LocalizationProvider>
91100
<Select

src/routes/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ const AppRouter = createBrowserRouter([
4848
)
4949
},
5050
{
51-
path: "/create_lecture",
51+
path: "course/:id/create_lecture/",
5252
element:
5353
isLoggedIn() && (IsTeacher() || IsAdmin()) ? (
5454
<CreateLecture />

0 commit comments

Comments
 (0)