74 lines
3.7 KiB
Vue
74 lines
3.7 KiB
Vue
<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> |