2024-09-15 01:50:36 +02:00

61 lines
1.4 KiB
Vue

<script setup lang="ts">
import type { Database } from '@pel/supabase/types'
defineOptions({
name: 'FOHeader',
})
const router = useRouter()
const { user, displayName, waitingMailValidation, loading } = useProfile()
const { auth } = useSupabaseClient<Database>()
const links = computed(() => {
const tmp = []
if (!user.value) {
tmp.push({
label: 'Rejoindre FO',
to: '/join'
})
} else {
tmp.push({
label: 'Les actus',
to: '/news'
})
}
return tmp
})
const signOut = async () => {
const { error } = await auth.signOut()
if (error) console.log(error)
router.push('/')
}
</script>
<template>
<UHeader :links="links" class="bg-white dark:bg-gray-900 rounded-xl shadow-lg mx-4 mt-4">
<template #left>
<NuxtLink to="/">
<NuxtImg src="/assets/img/logo-fo.svg" alt="Force Orange" />
</NuxtLink>
</template>
<template #right>
<UColorModeButton />
<template v-if="user">
<UButton to="/profile" :loading="loading" icon="i-mdi-account-circle">
{{ displayName }}
</UButton>
<UButton @click="signOut" variant="soft">Se déconnecter</UButton>
</template>
<UButton v-else to="/signin" variant="soft">Se connecter</UButton>
</template>
</UHeader>
<UNotification v-if="waitingMailValidation" title="N'oublies pas de confirmer ton adresse de courriel !" :id="1"
:timeout="0" />
</template>