Files
Avtex/app/layouts/default.vue
T

31 lines
1.5 KiB
Vue

<template>
<div class="min-h-screen bg-slate-950 text-slate-100">
<nav v-if="isAuthenticated" class="border-b border-slate-800 bg-slate-900/80 backdrop-blur">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between h-14">
<div class="flex items-center gap-4">
<NuxtLink to="/" class="text-xl font-bold text-blue-400">XFlow</NuxtLink>
<NuxtLink to="/canvases" class="text-sm text-slate-400 hover:text-white transition">Проекты</NuxtLink>
<NuxtLink to="/tasks" class="text-sm text-slate-400 hover:text-white transition">Задачи</NuxtLink>
<NuxtLink v-if="isAdmin" to="/admin" class="text-sm text-slate-400 hover:text-white transition">Админ</NuxtLink>
<NuxtLink to="/settings" class="text-sm text-slate-400 hover:text-white transition">Настройки</NuxtLink>
</div>
<div class="flex items-center gap-4">
<NuxtLink :to="`/profile/${user?.id}`" class="text-sm text-slate-400 hover:text-white transition">
{{ user?.username }}
</NuxtLink>
<button @click="logout" class="text-sm text-red-400 hover:text-red-300 transition">Выйти</button>
</div>
</div>
</div>
</nav>
<slot />
<AchievementOverlay :achievements="userAchievements" />
</div>
</template>
<script setup>
const { user, isAuthenticated, isAdmin, logout } = useAuth()
const { achievements: userAchievements } = useAchievements()
</script>