From 2b1955608df1149bb3581d92421bdb4e5e40481e Mon Sep 17 00:00:00 2001 From: Kenneth Obsequio Date: Sat, 16 May 2026 11:05:04 +0800 Subject: [PATCH] wip: course layout and func to context Signed-off-by: Kenneth Obsequio --- src/components/generic/AddBlockMenu.jsx | 75 ++++ src/components/generic/AssetPickerSheet.jsx | 195 +++++++++ src/components/generic/BlockList.jsx | 66 +++ src/components/generic/BlockWrapper.jsx | 83 ++++ src/components/generic/Blocks/ImageBlock.jsx | 71 ++++ src/components/generic/Blocks/TextBlock.jsx | 18 + .../generic/Blocks/TextImageBlock.jsx | 111 +++++ .../generic/Blocks/TextVideoBlock.jsx | 108 +++++ src/components/generic/Blocks/VideoBlock.jsx | 64 +++ src/contexts/AdminCoursesContext.jsx | 395 ++++++++++++++++++ src/contexts/provider/AdminProvider.jsx | 7 +- src/data/adminDashboard.data.jsx | 2 - src/data/adminTiles.data.js | 14 +- .../admin/components/courses/CourseTable.jsx | 119 ++++++ .../admin/components/courses/LessonsTable.jsx | 119 ++++++ .../admin/components/courses/UnitsTable.jsx | 119 ++++++ .../admin/config/courses/columns.config.jsx | 38 ++ .../config/courses/lessons/columns.config.jsx | 52 +++ .../courses/lessons/rowActions.config.jsx | 35 ++ .../config/courses/lessons/toolbar.config.jsx | 53 +++ .../config/courses/rowActions.config.jsx | 33 ++ .../admin/config/courses/selection.config.jsx | 18 + .../admin/config/courses/toolbar.config.jsx | 47 +++ .../config/courses/units/columns.config.jsx | 40 ++ .../courses/units/rowActions.config.jsx | 33 ++ .../config/courses/units/toolbar.config.jsx | 48 +++ .../admin/pages/courses/CourseDetail.jsx | 73 ++++ .../admin/pages/courses/CourseList.jsx | 23 + .../admin/pages/courses/CreateCourse.jsx | 103 +++++ .../admin/pages/courses/CreateLesson.jsx | 105 +++++ .../admin/pages/courses/CreateUnit.jsx | 104 +++++ .../admin/pages/courses/EditCourse.jsx | 118 ++++++ .../admin/pages/courses/EditLesson.jsx | 122 ++++++ src/modules/admin/pages/courses/EditUnit.jsx | 119 ++++++ .../admin/pages/courses/LessonDetail.jsx | 99 +++++ .../admin/pages/courses/LessonPageBuilder.jsx | 157 +++++++ .../admin/pages/courses/UnitDetail.jsx | 74 ++++ src/modules/admin/routes/AdminRoutes.jsx | 35 +- 38 files changed, 3086 insertions(+), 9 deletions(-) create mode 100644 src/components/generic/AddBlockMenu.jsx create mode 100644 src/components/generic/AssetPickerSheet.jsx create mode 100644 src/components/generic/BlockList.jsx create mode 100644 src/components/generic/BlockWrapper.jsx create mode 100644 src/components/generic/Blocks/ImageBlock.jsx create mode 100644 src/components/generic/Blocks/TextBlock.jsx create mode 100644 src/components/generic/Blocks/TextImageBlock.jsx create mode 100644 src/components/generic/Blocks/TextVideoBlock.jsx create mode 100644 src/components/generic/Blocks/VideoBlock.jsx create mode 100644 src/contexts/AdminCoursesContext.jsx create mode 100644 src/modules/admin/components/courses/CourseTable.jsx create mode 100644 src/modules/admin/components/courses/LessonsTable.jsx create mode 100644 src/modules/admin/components/courses/UnitsTable.jsx create mode 100644 src/modules/admin/config/courses/columns.config.jsx create mode 100644 src/modules/admin/config/courses/lessons/columns.config.jsx create mode 100644 src/modules/admin/config/courses/lessons/rowActions.config.jsx create mode 100644 src/modules/admin/config/courses/lessons/toolbar.config.jsx create mode 100644 src/modules/admin/config/courses/rowActions.config.jsx create mode 100644 src/modules/admin/config/courses/selection.config.jsx create mode 100644 src/modules/admin/config/courses/toolbar.config.jsx create mode 100644 src/modules/admin/config/courses/units/columns.config.jsx create mode 100644 src/modules/admin/config/courses/units/rowActions.config.jsx create mode 100644 src/modules/admin/config/courses/units/toolbar.config.jsx create mode 100644 src/modules/admin/pages/courses/CourseDetail.jsx create mode 100644 src/modules/admin/pages/courses/CourseList.jsx create mode 100644 src/modules/admin/pages/courses/CreateCourse.jsx create mode 100644 src/modules/admin/pages/courses/CreateLesson.jsx create mode 100644 src/modules/admin/pages/courses/CreateUnit.jsx create mode 100644 src/modules/admin/pages/courses/EditCourse.jsx create mode 100644 src/modules/admin/pages/courses/EditLesson.jsx create mode 100644 src/modules/admin/pages/courses/EditUnit.jsx create mode 100644 src/modules/admin/pages/courses/LessonDetail.jsx create mode 100644 src/modules/admin/pages/courses/LessonPageBuilder.jsx create mode 100644 src/modules/admin/pages/courses/UnitDetail.jsx diff --git a/src/components/generic/AddBlockMenu.jsx b/src/components/generic/AddBlockMenu.jsx new file mode 100644 index 0000000..e57ae86 --- /dev/null +++ b/src/components/generic/AddBlockMenu.jsx @@ -0,0 +1,75 @@ +// components/generic/CMS/AddBlockMenu.jsx + +import { Plus, Type, Image, ImagePlay, Video, VideoIcon } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; + +const BLOCK_TYPES = [ + { + type: "text", + label: "Text", + description: "A rich text block", + icon: , + }, + { + type: "image", + label: "Image", + description: "A single image", + icon: , + }, + { + type: "text-image", + label: "Text + Image", + description: "Text beside an image", + icon: , + }, + { + type: "video", + label: "Video", + description: "A single video", + icon: , + }, + { + type: "text-video", + label: "Text + Video", + description: "Text beside a video", + icon: