Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<template>
<button
class="navbar-toggler collapsed d-md-none"
type="button"
data-bs-toggle="collapse"
data-bs-target="#sidebarMenu"
aria-controls="sidebarMenu"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand col-md-3 col-lg-2 me-0 px-3" href="#">
{{ appName }}
</a>
<ul class="navbar-nav px-3">
<li v-if="isAuthenticated" class="nav-item text-nowrap">
<a class="nav-link" href="#" @click="logout">Ausloggen</a>
</li>
<li v-if="!isAuthenticated" class="nav-item text-nowrap">
<a class="nav-link" href="#" @click="login">Einloggen</a>
</li>
</ul>
</template>
<script>
/**
* A header for the Dashboard Layout. Uses vue-keycloak for login
* mechanics. Only configurable parameter is `appName`.
*/
import { useKeycloak } from "@baloise/vue-keycloak";
export default {
props: {
appName: { type: String, default: "AppName" },
noKeycloak: { type: Boolean, default: false }, // mock keycloak with static values
},
setup(props) {
if (props.noKeycloak) {
const isAuthenticated = false;
const login = () => console.log("Login");
const logout = () => console.log("Logout");
return { isAuthenticated, login, logout };
} else {
const { keycloak, isAuthenticated } = useKeycloak();