From b954cfb65164e43dea18eabba9a549bd1fbe278a Mon Sep 17 00:00:00 2001 From: Luciano Giacchetta Date: Thu, 21 Aug 2025 19:05:14 -0300 Subject: [PATCH] #17 - Filter Modules on Courses --- .../course/course-accordion-list.astro | 16 ++++++++++++++-- src/libs/courses.ts | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/components/course/course-accordion-list.astro b/src/components/course/course-accordion-list.astro index 863da66..b46914b 100644 --- a/src/components/course/course-accordion-list.astro +++ b/src/components/course/course-accordion-list.astro @@ -7,7 +7,19 @@ type Props = { const { course }: Props = Astro.props; -const courseDurations = course.modules.flatMap((time:any) => (time.duration)); +const isDev = import.meta.env.DEV; +const statusFilter = isDev ? { '_neq': 'archived' } : { '_eq': 'published' }; + +const filteredModules = course.modules.filter((module: any) => { + if (statusFilter._neq) { + return module.status !== statusFilter._neq; + } else if (statusFilter._eq) { + return module.status === statusFilter._eq; + } + return true; +}); + +const courseDurations = filteredModules.flatMap((time:any) => (time.duration)); const totalCourseDuration = sumTimes(courseDurations); --- @@ -28,7 +40,7 @@ const totalCourseDuration = sumTimes(courseDurations);
- {course.modules.map((item: any, index:number) => ( + {filteredModules.map((item: any, index:number) => (