Skip to content
Snippets Groups Projects
ANavSidebar.vue 2.08 KiB
Newer Older
    class="tw-shadow-inner tw-bg-gray-100 tw-border-solid tw-border-gray-200 tw-border-0 tw-border-r tw-relative tw-z-10"
  >
    <div class="tw-sticky tw-top-0 tw-flex tw-flex-col tw-h-screen tw-pb-3">
      <header
        class="sidebar-item tw-gap-6 tw-rounded-none tw-bg-gray-700 tw-text-white tw-flex-none"
      >
        <LogoHeader />

        <AUserPreview
          v-if="authStore.steeringUser"
          :user="authStore.steeringUser"
          test-id="username"
          class="tw-bg-gray-800 tw-text-gray-200"
        >
          <button
            type="button"
            class="btn btn-default tw-p-0 tw-w-10 tw-h-10 tw-rounded-full tw-flex-none"
            data-testid="menu-logout"
            @click="logoutRedirect"
          >
            <icon-system-uicons-exit-right />
          </button>
        </AUserPreview>
      </header>

      <div class="tw-flex tw-flex-col tw-gap-6 tw-px-3 tw-flex-1">
        <AMainNavMenu v-if="authStore.steeringUser" />

        <div class="sidebar-item tw-p-0 tw-mt-auto">
          <ShowSelector
            class="tw-w-full tw-rounded"
            input-class="tw-border-0 tw-w-full tw-pt-8 tw-pb-3 tw-px-3 tw-bg-transparent tw-rounded"
            label-class="tw-text-sm tw-absolute tw-left-3 tw-top-3 tw-font-semibold"
            drawer-class="tw-text-gray-900 md:tw-left-0 tw-bottom-full !tw-top-auto tw-mb-3"
            keyboard-shortcut-class="tw-bg-gray-100 tw-text-gray-500 tw-inset-y-center tw-h-min tw-right-3"
          />
        </div>
      </div>
    </div>
  </div>
</template>

<script lang="ts" setup>
import LogoHeader from '../../../public/assets/logo-header.svg?component'
import { useAuthStore } from '@/stores/auth'
import ShowSelector from '@/components/shows/ShowSelector.vue'
import AUserPreview from '@/components/generic/AUserPreview.vue'
import { logoutRedirect } from '@/oidc'
import AMainNavMenu from '@/components/nav/AMainNavMenu.vue'

const authStore = useAuthStore()
</script>

<style>
.sidebar-item {
  @apply tw-flex tw-gap-2 tw-items-center tw-shadow tw-p-3 tw-rounded tw-bg-white tw-text-inherit;
}
</style>