<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();
      const login = keycloak.login;
      const logout = keycloak.logout;
      return {
        login,
        logout,
        isAuthenticated,
      };
    }
  },
};
</script>