2
0
Fork 0
inspin.io/components/Header.vue

49 lines
2.2 KiB
Vue

<script setup>
const route = useRoute()
const user = useDirectusUser()
const { isMobileOrTablet, isDesktop } = useDevice()
const menu = ref(false)
function openMenu() { menu.value = true }
function closeMenu() { menu.value = false }
</script>
<template>
<header v-if="route.path !== '/login'" >
<div class="nav" v-if="isDesktop">
<NuxtLink to="/" class="logo" >inspin.digital</NuxtLink>
<ul class="links">
<li><NuxtLink to="/about" :class="route.path === '/about' ? 'highlight' : ''">About</NuxtLink></li>
<li><NuxtLink to="/products" :class="route.path === '/products' ? 'highlight' : ''">Products</NuxtLink></li>
<li><NuxtLink to="/resources" :class="route.path === '/resources' ? 'highlight' : ''">Resources</NuxtLink></li>
<li><NuxtLink to="/articles" :class="route.path === '/articles' ? 'highlight' : ''">Articles</NuxtLink></li>
</ul>
<ul class="cta" v-if="!user">
<li class="btn"><NuxtLink to="/contact">Get in touch</NuxtLink></li>
<li><NuxtLink to="/login">Sign in</NuxtLink></li>
</ul>
<ul class="user" v-if="user">
<li><NuxtLink to="/settings" :class="route.name === 'settings' ? 'highlight' : ''">{{ user.first_name }} {{ user.last_name }}</NuxtLink></li>
<li><NuxtLink to="/dashboard" :class="route.name === 'dashboard' ? 'highlight' : ''">Dashboard</NuxtLink></li>
</ul>
</div>
<div class="nav" v-if="isMobileOrTablet">
<NuxtLink to="/" class="logo" >inspin.digital</NuxtLink>
<span class="icon-bars" @click="openMenu()"></span>
<div class="menu" v-if="menu">
<NuxtLink to="/" class="logo" @click="closeMenu()">inspin.digital</NuxtLink>
<span class="icon-times" @click="closeMenu()"></span>
<ul class="links" @click="closeMenu()">
<li><NuxtLink to="/about">About</NuxtLink></li>
<li><NuxtLink to="/products">Products</NuxtLink></li>
<li><NuxtLink to="/resources">Resources</NuxtLink></li>
<li><NuxtLink to="/articles">Articles</NuxtLink></li>
<li class="cta"><NuxtLink to="/contact">Get in touch</NuxtLink></li>
</ul>
</div>
</div>
</header>
</template>