From 7ed6ec9ae18faa8875b343cfe1e6a4d8e124578b Mon Sep 17 00:00:00 2001 From: sajjadtalkhabi <97734061+sajjadtalkhabi@users.noreply.github.com> Date: Thu, 28 May 2026 13:34:30 +0330 Subject: [PATCH] fix: user changes --- src/App.vue | 25 +- src/components/form/VoiceRecorder.vue | 2 +- src/composables/useYup.js | 12 +- src/enums/index.js | 4 +- .../modals/AddCourseStudentModal.vue | 305 ------------------ .../modals/AddSessionToCourseModal.vue | 77 ++--- .../components/modals/CourseDetailsModal.vue | 222 ++----------- .../admin/courses/pages/CourseFormPage.vue | 20 +- .../admin/courses/pages/CoursesListPage.vue | 2 - src/features/admin/courses/schema/index.js | 1 - .../components/modals/SessionDetailsModal.vue | 39 +-- .../admin/terms/components/CourseItem.vue | 2 +- .../components/modals/AddTermStudentModal.vue | 71 +--- .../components/modals/TermDetailsModal.vue | 31 +- src/features/auth/components/SignupForm.vue | 2 +- src/features/auth/pages/ResetPasswordPage.vue | 2 +- .../courses/components/StudentCourseItem.vue | 12 +- .../student/exams/pages/StudentExamPage.vue | 24 +- .../exams/pages/StudentTakeExamPage.vue | 11 +- .../pages/StudentLessonDetailsPage.vue | 4 +- src/features/student/router.js | 2 +- .../pages/StudentSessionDetailsPage.vue | 33 +- .../terms/components/StudentTermItem.vue | 131 ++++---- .../terms/components/StudentTermSummary.vue | 38 +-- .../terms/pages/StudentTermDetailsPage.vue | 8 +- .../student/terms/pages/StudentTermsPage.vue | 29 +- src/services/api/admin-courses.js | 21 -- src/services/api/admin-terms.js | 4 +- src/services/api/endpoints.js | 29 +- src/services/api/student-courses.js | 4 +- src/services/api/student-exams.js | 7 +- src/services/api/student-lessons.js | 4 - src/services/api/student-sessions.js | 7 +- src/services/mock/routes/student-courses.js | 24 -- src/services/mock/routes/student-exams.js | 27 -- src/services/mock/routes/student-lessons.js | 11 - src/services/mock/routes/student-sessions.js | 14 - src/services/mock/routes/student-terms.js | 21 -- src/services/query/admin-courses.js | 80 ----- src/services/query/admin-terms.js | 13 +- src/services/query/auth.js | 2 +- src/services/query/student-courses.js | 11 +- src/services/query/student-exams.js | 9 +- src/services/query/student-lessons.js | 14 - src/services/query/student-sessions.js | 24 +- src/services/query/student-terms.js | 7 + 46 files changed, 328 insertions(+), 1114 deletions(-) delete mode 100644 src/features/admin/courses/components/modals/AddCourseStudentModal.vue delete mode 100644 src/services/api/student-lessons.js delete mode 100644 src/services/mock/routes/student-courses.js delete mode 100644 src/services/mock/routes/student-exams.js delete mode 100644 src/services/mock/routes/student-lessons.js delete mode 100644 src/services/mock/routes/student-sessions.js delete mode 100644 src/services/mock/routes/student-terms.js delete mode 100644 src/services/query/student-lessons.js diff --git a/src/App.vue b/src/App.vue index b9f8711..94bbfbb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,5 +1,5 @@ @@ -9,6 +9,9 @@ import { storeToRefs } from 'pinia' import { computed, watch } from 'vue' import { useRoute } from 'vue-router' import { useModalStore } from '@/store/modal' +import { useAuthStore } from '@/store/auth' +import { useGetMeQuery } from '@/services/query/auth' +import { tokenService } from '@/services/api/token-service' import AdminLayout from '@/layouts/AdminLayout.vue' import PublicLayout from '@/layouts/PublicLayout.vue' import StudentLayout from '@/layouts/StudentLayout.vue' @@ -25,6 +28,26 @@ const layouts = { const currentLayout = computed(() => layouts[route.meta?.layout] || PublicLayout) +const authStore = useAuthStore() + +const hasToken = computed(() => tokenService.hasToken()) + +const { + data: me, + isLoading: isMeLoading, + isFetched: isMeFetched, +} = useGetMeQuery({ enabled: hasToken }) + +watch( + me, + (value) => { + if (value) authStore.setUser(value) + }, + { immediate: true } +) + +const isReady = computed(() => !hasToken.value || isMeFetched.value || !isMeLoading.value) + const { modals } = storeToRefs(useModalStore()) watch( () => modals.value.length, diff --git a/src/components/form/VoiceRecorder.vue b/src/components/form/VoiceRecorder.vue index d13ab3b..45ce784 100644 --- a/src/components/form/VoiceRecorder.vue +++ b/src/components/form/VoiceRecorder.vue @@ -46,7 +46,7 @@