feat: update NavBar to use dynamic color based on user role

This commit is contained in:
2025-10-21 14:12:44 +02:00
parent 2cca658a50
commit a5069c10a0

View File

@@ -1,10 +1,34 @@
<script setup lang="ts">
import { Role } from '~/types/role';
import type { User } from '~/types/user';
const { logout } = useSanctumAuth();
const user = useSanctumUser<User>();
const color = computed(() => {
switch (user.value?.role) {
case Role.ADMIN:
return 'rgb(211, 47, 47)';
case Role.STUDENT:
return 'rgb(46, 125, 50)';
case Role.EMPLOYER:
return 'rgb(25, 118, 210)';
default:
return 'rgb(46, 125, 50)';
}
});
</script>
<template>
<div>
<v-app-bar color="rgb(46, 125, 50)" style="color: white" :elevation="2">
<v-app-bar :color="color" style="color: white" :elevation="2">
<v-btn variant="text" dense to="/">Domov</v-btn>
<v-btn variant="text" dense to="/register">Register</v-btn>
<v-btn variant="text" dense to="/login">Login</v-btn>
<v-btn v-show="user === null" variant="text" dense to="/register">Register</v-btn>
<v-btn v-show="user === null" variant="text" dense to="/login">Login</v-btn>
<v-btn v-show="user" variant="text" dense to="/dashboard">Dashboard</v-btn>
<v-btn v-show="user" variant="text" dense @click="logout">Logout</v-btn>
<v-spacer></v-spacer>
</v-app-bar>
</div>