From 6cf14b9ba72cd6e05de70c39060f4cc87c33c1c9 Mon Sep 17 00:00:00 2001 From: Rajpreet0 Date: Tue, 17 Feb 2026 18:49:54 +0100 Subject: [PATCH] added filter for courses for nievaus --- .../courses/ui/components/CourseFilter.tsx | 23 +++++++++++++++---- .../courses/ui/views/course-list-view.tsx | 6 +++++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/modules/courses/ui/components/CourseFilter.tsx b/src/modules/courses/ui/components/CourseFilter.tsx index 3ca4b11..e9b836b 100644 --- a/src/modules/courses/ui/components/CourseFilter.tsx +++ b/src/modules/courses/ui/components/CourseFilter.tsx @@ -24,6 +24,7 @@ interface FilterValues { filterSport: string; filterTrainer: string; filterRoom: string; + filterLevel: string; dateFrom: string; dateTo: string; timeFrom: string; @@ -40,6 +41,7 @@ interface CourseFilterProps { filterSport: string; filterTrainer: string; filterRoom: string; + filterLevel: string; dateFrom: string; dateTo: string; timeFrom: string; @@ -65,6 +67,7 @@ const CourseFilter: React.FC = ({ filterSport, filterTrainer, filterRoom, + filterLevel, dateFrom, dateTo, timeFrom, @@ -84,6 +87,7 @@ const CourseFilter: React.FC = ({ const [localSport, setLocalSport] = useState(filterSport); const [localTrainer, setLocalTrainer] = useState(filterTrainer); const [localRoom, setLocalRoom] = useState(filterRoom); + const [localLevel, setLocalLevel] = useState(filterLevel); const [localDateFrom, setLocalDateFrom] = useState(dateFrom); const [localDateTo, setLocalDateTo] = useState(dateTo); const [localTimeFrom, setLocalTimeFrom] = useState(timeFrom); @@ -99,6 +103,7 @@ const CourseFilter: React.FC = ({ setLocalSport(filterSport); setLocalTrainer(filterTrainer); setLocalRoom(filterRoom); + setLocalLevel(filterLevel); setLocalDateFrom(dateFrom); setLocalDateTo(dateTo); setLocalTimeFrom(timeFrom); @@ -114,6 +119,7 @@ const CourseFilter: React.FC = ({ filterSport !== "all" || filterTrainer !== "all" || filterRoom !== "all" || + filterLevel !== "all" || !!dateFrom || !!dateTo || !!timeFrom || @@ -127,6 +133,7 @@ const CourseFilter: React.FC = ({ filterSport: localSport, filterTrainer: localTrainer, filterRoom: localRoom, + filterLevel: localLevel, dateFrom: localDateFrom, dateTo: localDateTo, timeFrom: localTimeFrom, @@ -141,6 +148,7 @@ const CourseFilter: React.FC = ({ setLocalSport("all"); setLocalTrainer("all"); setLocalRoom("all"); + setLocalLevel("all"); setLocalDateFrom(""); setLocalDateTo(""); setLocalTimeFrom(""); @@ -276,14 +284,19 @@ const CourseFilter: React.FC = ({ - {/* TODO: Niveau */} + {/* Niveau */}
- setLocalLevel(e.target.value)} + className="h-10 w-full px-3 rounded-lg border border-gray-300 bg-gray-50 focus:outline-none focus:border-blue-500 focus:ring-2 focus:ring-blue-300 transition" + > + + - - + +
diff --git a/src/modules/courses/ui/views/course-list-view.tsx b/src/modules/courses/ui/views/course-list-view.tsx index 0f444c9..dac1a23 100644 --- a/src/modules/courses/ui/views/course-list-view.tsx +++ b/src/modules/courses/ui/views/course-list-view.tsx @@ -44,6 +44,7 @@ const CourseListView = () => { const [filterSport, setFilterSport] = useState("all"); const [filterTrainer, setFilterTrainer] = useState("all"); const [filterRoom, setFilterRoom] = useState(searchParams.get("room") ?? "all"); + const [filterLevel, setFilterLevel] = useState("all"); const [dateFrom, setDateFrom] = useState(""); const [dateTo, setDateTo] = useState(""); const [timeFrom, setTimeFrom] = useState(""); @@ -280,6 +281,7 @@ const CourseListView = () => { const filteredCourses = courses.filter((course) => { if (filterStatus !== "all" && course.status !== filterStatus) return false; if (filterSport !== "all" && !course.sport.includes(filterSport)) return false; + if (filterLevel !== "all" && course.level !== filterLevel) return false; // Trainer filter if (filterTrainer !== "all" && !course.trainers.includes(filterTrainer)) return false; @@ -375,6 +377,7 @@ const CourseListView = () => { filterSport !== "all", filterTrainer !== "all", filterRoom !== "all", + filterLevel !== "all", !!dateFrom, !!dateTo, !!timeFrom, @@ -392,6 +395,7 @@ const CourseListView = () => { filterSport={filterSport} filterTrainer={filterTrainer} filterRoom={filterRoom} + filterLevel={filterLevel} dateFrom={dateFrom} dateTo={dateTo} timeFrom={timeFrom} @@ -408,6 +412,7 @@ const CourseListView = () => { setFilterSport(filters.filterSport); setFilterTrainer(filters.filterTrainer); setFilterRoom(filters.filterRoom); + setFilterLevel(filters.filterLevel); setDateFrom(filters.dateFrom); setDateTo(filters.dateTo); setTimeFrom(filters.timeFrom); @@ -420,6 +425,7 @@ const CourseListView = () => { setFilterSport("all"); setFilterTrainer("all"); setFilterRoom("all"); + setFilterLevel("all"); setDateFrom(""); setDateTo(""); setTimeFrom("");