Files
manja_dev_ui/src/components/AppSidebar.vue
T
2024-01-02 20:08:19 +01:00

56 lines
1.6 KiB
Vue

<template>
<CSidebar
class="border-end"
colorScheme="dark"
position="fixed"
:unfoldable="sidebarUnfoldable"
:visible="sidebarVisible"
@visible-change="
(event) =>
$store.commit({
type: 'updateSidebarVisible',
value: event,
})
"
>
<CSidebarHeader class="border-bottom">
<RouterLink custom to="/" v-slot="{ href, navigate }">
<CSidebarBrand v-bind="$attrs" as="a" :href="href" @click="navigate">
<CIcon custom-class-name="sidebar-brand-full" :icon="logo" :height="32" />
<CIcon custom-class-name="sidebar-brand-narrow" :icon="sygnet" :height="32" />
</CSidebarBrand>
</RouterLink>
<CCloseButton class="d-lg-none" dark @click="$store.commit('toggleSidebar')" />
</CSidebarHeader>
<AppSidebarNav />
<CSidebarFooter class="border-top">
<CSidebarToggler class="d-none d-lg-flex" @click="$store.commit('toggleUnfoldable')" />
</CSidebarFooter>
</CSidebar>
</template>
<script>
import { computed } from 'vue'
import { RouterLink } from 'vue-router'
import { useStore } from 'vuex'
import { AppSidebarNav } from './AppSidebarNav'
import { logo } from '@/assets/brand/logo'
import { sygnet } from '@/assets/brand/sygnet'
export default {
name: 'AppSidebar',
components: {
AppSidebarNav,
RouterLink,
},
setup() {
const store = useStore()
return {
logo,
sygnet,
sidebarUnfoldable: computed(() => store.state.sidebarUnfoldable),
sidebarVisible: computed(() => store.state.sidebarVisible),
}
},
}
</script>