feat: Auto-close mobile navigation sidebar upon successful user navigation
This commit is contained in:
parent
69762667bc
commit
b9d2988e8c
@ -1,6 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import { Link } from '@inertiajs/vue3';
|
||||
import { Link, router } from '@inertiajs/vue3';
|
||||
import { BookOpen, FolderGit2, LayoutGrid, Users } from '@lucide/vue';
|
||||
import { onMounted, onUnmounted } from 'vue';
|
||||
import AppLogo from '@/components/AppLogo.vue';
|
||||
import NavFooter from '@/components/NavFooter.vue';
|
||||
import NavMain from '@/components/NavMain.vue';
|
||||
@ -13,11 +14,30 @@ import {
|
||||
SidebarMenu,
|
||||
SidebarMenuButton,
|
||||
SidebarMenuItem,
|
||||
useSidebar,
|
||||
} from '@/components/ui/sidebar';
|
||||
import { dashboard } from '@/routes';
|
||||
import { index as dynamics } from '@/routes/dynamics';
|
||||
import type { NavItem } from '@/types';
|
||||
|
||||
const { isMobile, setOpenMobile } = useSidebar();
|
||||
|
||||
let unregister: () => void;
|
||||
|
||||
onMounted(() => {
|
||||
unregister = router.on('navigate', () => {
|
||||
if (isMobile.value) {
|
||||
setOpenMobile(false);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
if (unregister) {
|
||||
unregister();
|
||||
}
|
||||
});
|
||||
|
||||
const mainNavItems: NavItem[] = [
|
||||
{
|
||||
title: 'Dashboard',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user