Reflex/src/views/HomeView.vue
2025-05-21 22:13:09 +07:00

74 lines
3.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="container mt-5">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="text-center p-5 rounded-3 bg-light shadow-sm">
<template v-if="isAuthenticated">
<h1 class="display-4 fw-bold mb-3">С возвращением, {{ user?.name || 'Пользователь' }}!</h1>
<p class="lead mb-4">
Готов продолжить поиск своей второй половинки?
</p>
<hr class="my-4" />
<p>
Перейди в свой <router-link to="/profile">профиль</router-link> или начни <router-link to="/swipe">поиск</router-link>! (Ссылка на свайпы пока не работает)
</p>
<!-- Можно добавить еще кнопки или информацию для залогиненного пользователя -->
</template>
<template v-else>
<h1 class="display-4 fw-bold mb-3">Добро пожаловать в Dating App!</h1>
<p class="lead mb-4">
Найди свою вторую половинку уже сегодня. Присоединяйся к нашему
дружелюбному сообществу.
</p>
<hr class="my-4" />
<p>
Это главная страница нашего замечательного приложения. Готов начать?
</p>
<div class="d-grid gap-2 d-sm-flex justify-content-sm-center mt-4">
<router-link to="/login" class="btn btn-outline-primary btn-lg px-4 gap-3">
Войти
</router-link>
<router-link to="/register" class="btn btn-success btn-lg px-4">
Зарегистрироваться
</router-link>
</div>
</template>
</div>
</div>
</div>
<!-- ... секция с фичами (можно оставить или убрать) ... -->
</div>
</template>
<script setup>
import { useAuth } from '@/auth'; // Импортируем наш auth composable
import { onMounted } from 'vue'; // Добавляем импорт onMounted
const { user, isAuthenticated, fetchUser } = useAuth(); // Добавляем fetchUser
// Обновляем данные пользователя при монтировании компонента
onMounted(async () => {
if (localStorage.getItem('userToken')) {
// Если в localStorage есть токен, пробуем загрузить данные пользователя
await fetchUser();
console.log('HomeView: Состояние аутентификации:', isAuthenticated.value);
console.log('HomeView: Пользователь:', user.value);
}
});
// Если нужна какая-то специфическая логика для главной страницы, можно добавить здесь.
// Например, если пользователь аутентифицирован, можно было бы сразу перенаправлять
// на другую страницу, но это зависит от желаемого UX.
// import { useRouter } from 'vue-router';
// const router = useRouter();
// onMounted(() => {
// if (isAuthenticated.value) {
// // router.push('/swipe'); // Например, на страницу свайпов
// }
// });
</script>
<style scoped>
/* Стили Bootstrap уже должны применяться глобально */
/* Здесь можно добавить специфичные стили для этой страницы, если нужно */
</style>