From ad11c6b7c524f14fad4f0314c3c4cfd1cc05dc76 Mon Sep 17 00:00:00 2001 From: supalerk-ar66 Date: Fri, 27 Feb 2026 10:05:33 +0700 Subject: [PATCH] feat: Implement initial e-learning platform frontend structure including dashboard, course management, authentication, and common UI components. --- .../classroom/AnnouncementModal.vue | 6 +- .../classroom/CurriculumSidebar.vue | 48 ++--- .../components/classroom/VideoPlayer.vue | 38 ++-- .../components/common/FormInput.vue | 18 +- .../components/common/GlobalLoader.vue | 12 +- .../components/common/LanguageSwitcher.vue | 16 +- .../components/common/LoadingSkeleton.vue | 8 + .../components/common/LoadingSpinner.vue | 4 + .../components/course/CourseCard.vue | 34 ++-- .../components/discovery/CategorySidebar.vue | 6 +- .../components/discovery/CourseDetailView.vue | 38 ++-- .../components/layout/AppHeader.vue | 20 +-- .../components/layout/AppSidebar.vue | 14 +- .../components/layout/LandingFooter.vue | 22 +-- .../components/layout/LandingHeader.vue | 51 +++--- .../components/layout/MobileNav.vue | 2 +- .../components/profile/PasswordChangeForm.vue | 9 +- .../components/profile/ProfileEditForm.vue | 15 +- .../components/user/UserAvatar.vue | 8 +- Frontend-Learner/components/user/UserMenu.vue | 6 +- Frontend-Learner/composables/useCategory.ts | 35 ++-- .../composables/useFormValidation.ts | 17 ++ Frontend-Learner/composables/useMediaPrefs.ts | 47 ++--- Frontend-Learner/composables/useNavItems.ts | 15 +- Frontend-Learner/composables/useQuizRunner.ts | 67 ++++--- Frontend-Learner/composables/useThemeMode.ts | 19 +- Frontend-Learner/constants/landing.ts | 2 +- Frontend-Learner/layouts/auth.vue | 2 +- Frontend-Learner/layouts/dashboard-index.vue | 32 ++-- Frontend-Learner/layouts/default.vue | 11 +- Frontend-Learner/layouts/landing.vue | 8 +- Frontend-Learner/pages/auth/login.vue | 32 ++-- Frontend-Learner/pages/browse/index.vue | 24 +-- Frontend-Learner/pages/classroom/learning.vue | 168 +++++++++--------- Frontend-Learner/pages/classroom/quiz.vue | 130 +++++++------- Frontend-Learner/pages/course/[id].vue | 6 +- .../pages/dashboard/announcements.vue | 44 ++--- Frontend-Learner/pages/dashboard/index.vue | 20 +-- Frontend-Learner/pages/dashboard/profile.vue | 22 +-- Frontend-Learner/pages/index.vue | 48 ++--- Frontend-Learner/pages/quiz/[id].vue | 80 +++++---- Frontend-Learner/pages/reset-password.vue | 26 +-- Frontend-Learner/pages/verify-email.vue | 24 +-- Frontend-Learner/คู่มืออธิบาย/web-dev-details.md | 44 ++++- 44 files changed, 720 insertions(+), 578 deletions(-) diff --git a/Frontend-Learner/components/classroom/AnnouncementModal.vue b/Frontend-Learner/components/classroom/AnnouncementModal.vue index 7c0b8356..074ae27c 100644 --- a/Frontend-Learner/components/classroom/AnnouncementModal.vue +++ b/Frontend-Learner/components/classroom/AnnouncementModal.vue @@ -1,7 +1,7 @@ @@ -32,7 +32,7 @@ const changeLocale = async (code: string) => { class="language-btn" :aria-label="$t('language.label')" > - + { diff --git a/Frontend-Learner/components/discovery/CategorySidebar.vue b/Frontend-Learner/components/discovery/CategorySidebar.vue index 15f238d4..692d26cf 100644 --- a/Frontend-Learner/components/discovery/CategorySidebar.vue +++ b/Frontend-Learner/components/discovery/CategorySidebar.vue @@ -1,7 +1,7 @@ @@ -9,7 +9,7 @@