Skip to content

Commit 3dbd5e3

Browse files
committed
change
1 parent f64a7bb commit 3dbd5e3

File tree

4 files changed

+40
-11
lines changed

4 files changed

+40
-11
lines changed

overload/src/app/components/selectedCourse.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
export const SelectedCourse = () => {
1+
type SelectedCourseProps = {
2+
courseCode: string
3+
courseName: string
4+
}
5+
6+
export const SelectedCourse = ({ courseCode, courseName }: SelectedCourseProps) => {
27
return (
38
<div className="bg-white w-[100%] m-3 rounded-md">
4-
SelectedCourse
9+
{courseCode}: {courseName}
510
</div>
611
)
712
}

overload/src/app/components/selectedCourses.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
"use client"
2+
import { Course } from "../home/page";
23
import SelectedCourse from "./selectedCourse";
34
import Dropdown from "./termSelectDropDown";
45

56
type SelectedCoursesProps = {
7+
selectedCourses: Course[]
68
handleSelectTerm: (term: number) => void;
79
}
810

9-
export const SelectedCourses = ({ handleSelectTerm }: SelectedCoursesProps) => {
11+
export const SelectedCourses = ({ selectedCourses, handleSelectTerm }: SelectedCoursesProps) => {
12+
const courses = selectedCourses.map((course) => <SelectedCourse key={course.courseCode} courseCode={course.courseCode} courseName={course.courseName}/>)
13+
1014
return (
1115
<div className="flex flex-col h-[70%]">
1216
<div className="flex justify-center pb-8">
1317
<Dropdown handleSelectTerm={handleSelectTerm}/>
1418
</div>
1519
<div className="flex flex-col items-center p-8 bg-black ">
16-
<SelectedCourse />
17-
<SelectedCourse />
18-
<SelectedCourse />
20+
{courses}
1921
</div>
2022
</div>
2123
)

overload/src/app/components/termSelectDropDown.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export default function Dropdown({ handleSelectTerm }: DropdownProps) {
1414

1515
return (
1616
<div className="w-60">
17-
{/* <select
17+
<select
1818
className="block w-full px-4 py-2 mt-2 bg-red-500 border border-gray-200 rounded-md shadow-sm focus:border-blue-500 focus:ring focus:ring-blue-200 focus:ring-opacity-50"
1919
defaultValue={1}
2020
// value={selectedOption}
@@ -24,7 +24,7 @@ export default function Dropdown({ handleSelectTerm }: DropdownProps) {
2424
<option value="term1">Term 1</option>
2525
<option value="term2">Term 2</option>
2626
<option value="term3">Term 3</option>
27-
</select> */}
27+
</select>
2828
</div>
2929
);
3030
}

overload/src/app/home/page.tsx

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,46 @@
22
import SelectedCourses from "../components/selectedCourses";
33
import CoursesList from "../components/coursesList";
44
import { useState } from "react";
5+
import Navbar from "../components/NavBar";
6+
7+
export type Course = {
8+
courseCode: string
9+
courseName: string
10+
}
511

612
export const Home = async () => {
7-
const [selectedTerm, setSelectedTerm] = useState(1);
13+
const [selectedTerm, setSelectedTerm] = useState<number>(1);
14+
const [selectedCourses, setSelectedCourses] = useState<Course[]>([
15+
{
16+
courseCode: "COMP1511",
17+
courseName: "Programming fundementalss"
18+
}
19+
])
820

921
const handleSelectTerm = (term: number) => {
1022
setSelectedTerm(term);
1123
}
1224

25+
const handleSelectCourse = (course: Course) => {
26+
const currentlySelectedCourses = [...selectedCourses]
27+
if (currentlySelectedCourses.length > 2) return;
28+
currentlySelectedCourses.push(course);
29+
setSelectedCourses(currentlySelectedCourses);
30+
}
1331

1432
return (
1533
<div className="bg-gray-500 h-[100vh]">
34+
{/* <div className="text-center h-[20vh]">
35+
hello
36+
</div> */}
37+
<Navbar />
1638
<div className="text-center h-[20vh]">
17-
top
39+
1840
</div>
1941
<div className="flex pr-[8vw] pl-[8vw]">
2042
<div className="w-[70%]">
2143
{/* Content for the 70% width div */}
22-
<SelectedCourses handleSelectTerm={handleSelectTerm}/>
44+
<SelectedCourses selectedCourses={selectedCourses} handleSelectTerm={handleSelectTerm}/>
2345
</div>
2446
<div className="w-[30%] bg-black">
2547
{/* Content for the 30% width div */}

0 commit comments

Comments
 (0)