diff --git a/frontend/src/assets/images/login-campus.webp b/frontend/src/assets/images/login-campus.webp new file mode 100644 index 0000000..dc2ae70 Binary files /dev/null and b/frontend/src/assets/images/login-campus.webp differ diff --git a/frontend/src/views/auth/LoginView.vue b/frontend/src/views/auth/LoginView.vue index dc90bcb..aedc713 100644 --- a/frontend/src/views/auth/LoginView.vue +++ b/frontend/src/views/auth/LoginView.vue @@ -3,6 +3,7 @@ import { ref } from 'vue' import { useRoute } from 'vue-router' import { useAuthStore } from '@/stores/auth' import AppIcon from '@/components/ui/AppIcon.vue' +import campusBg from '@/assets/images/login-campus.webp' const auth = useAuthStore() const route = useRoute() @@ -11,113 +12,614 @@ const loading = ref(false) if (typeof route.query.error === 'string') error.value = route.query.error -async function login() { +const featureCards = [ + { + icon: 'search' as const, + tone: 'blue', + title: 'Поиск лекций', + description: + 'Найдите самые интересные курсы и открытые лекции от ведущих преподавателей ЮФУ.', + }, + { + icon: 'coin' as const, + tone: 'green', + title: 'Зарабатывайте монеты', + description: + 'Оставляйте конструктивные отзывы после занятий и получайте вознаграждение.', + }, + { + icon: 'trophy' as const, + tone: 'amber', + title: 'Достижения и награды', + description: + 'Отслеживайте свой рост и открывайте уникальные достижения за активность.', + }, +] + +async function loginViaYufu() { loading.value = true error.value = '' const ok = auth.startMicrosoftLogin() loading.value = false - if (!ok) error.value = auth.error ?? 'Не удалось начать вход через Microsoft.' + if (!ok) error.value = auth.error ?? 'Не удалось начать вход.' }