diff --git a/src/pages/courses/Courses.jsx b/src/pages/courses/Courses.jsx index 9b7a35df..eefc5705 100644 --- a/src/pages/courses/Courses.jsx +++ b/src/pages/courses/Courses.jsx @@ -94,6 +94,19 @@ const CoursesStyling = styled.div` align-self: stretch; } + .filters-row { + display: flex; + justify-content: space-between; + padding: 48px 120px; + align-items: flex-start; + } + + .filter-container { + display: flex; + flex-direction: column; + gap: 12px; + } + .language-button-container { display: flex; gap: 8px; @@ -115,6 +128,17 @@ const CoursesStyling = styled.div` .courses-container { justify-content: center; } + + .filters-row { + flex-direction: column; + padding: 24px; + gap: 24px; + } + + .filter-container { + width: 100%; + align-items: center; + } } `; @@ -124,14 +148,19 @@ const Courses = () => { const { user } = useUser(); const navigate = useNavigate(); const [language, setLanguage] = useState('English'); + const [courseType, setCourseType] = useState('All'); // Add this line // Filter courses based on selected language const filteredNonUserCourses = nonUserCourses.filter( - (course) => course.language === language + (course) => + course.language === language && + (courseType === 'All' || course.course_type === courseType) ); const filteredUserCourses = userCourses.filter( - (course) => course.language === language + (course) => + course.language === language && + (courseType === 'All' || course.course_type === courseType) ); useEffect(() => { @@ -158,8 +187,12 @@ const Courses = () => { } }; - fetchData(); - }, []); + if (!user) { + navigate('/login'); + } else { + fetchData(); + } + }, [user, navigate]); return (
@@ -187,31 +220,81 @@ const Courses = () => { )}
-
-

SELECT LANGUAGE

-
- - + +
+
+

SELECT COURSE TYPE

+
+ + + + +
+
+ +
+

SELECT LANGUAGE

+
+ + +
+
{filteredNonUserCourses.map((classData, index) => (