From 7f8aee80304be6720b3cc92c2c20ed296b42733d Mon Sep 17 00:00:00 2001 From: Johannes Klatt <km1938@partner.kit.edu> Date: Mon, 24 Mar 2025 16:40:00 +0100 Subject: [PATCH] UPD: mobile interface for nav sidebar --- src/components/NavSidebar.vue | 5 ++++- src/components/NavSidebarButton.vue | 9 +++++++++ src/components/TopBar.vue | 7 +++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/components/NavSidebarButton.vue diff --git a/src/components/NavSidebar.vue b/src/components/NavSidebar.vue index abdb0534f..bb37aa3bf 100644 --- a/src/components/NavSidebar.vue +++ b/src/components/NavSidebar.vue @@ -1,4 +1,6 @@ <script setup lang="ts"> +import { useMediaQuery } from '@vueuse/core' + const navItems = [ { title: 'Home', @@ -22,6 +24,7 @@ const navItems = [ active: false, }, ] +const isMobile = useMediaQuery('(max-width: 768px)') </script> <template> @@ -31,7 +34,7 @@ const navItems = [ <SidebarGroup> <SidebarMenu> <template v-for="item in navItems" :key="item.title"> - <NavSidebarElement v-if="!item.fromTop" :title="item.title" :url="item.url" :icon="item.icon" :active="item.active" /> + <NavSidebarElement v-if="!item.fromTop || isMobile" :title="item.title" :url="item.url" :icon="item.icon" :active="item.active" /> </template> </SidebarMenu> </SidebarGroup> diff --git a/src/components/NavSidebarButton.vue b/src/components/NavSidebarButton.vue new file mode 100644 index 000000000..d401f1047 --- /dev/null +++ b/src/components/NavSidebarButton.vue @@ -0,0 +1,9 @@ +<template> + <Button variant="outline"> + <Icon + icon="radix-icons:moon" + class="h-[1.2rem] w-[0.2rem]" + /> + <span class="sr-only">Toggle navigation sidebar</span> + </Button> +</template> diff --git a/src/components/TopBar.vue b/src/components/TopBar.vue index 9a11fe1fb..08e31630d 100644 --- a/src/components/TopBar.vue +++ b/src/components/TopBar.vue @@ -1,6 +1,13 @@ +<script setup lang="ts"> +import { useMediaQuery } from '@vueuse/core' + +const isMobile = useMediaQuery('(max-width: 768px)') +</script> + <template> <div h-14 b-b bg-background> <div flex gap-2 justify-center p-2> + <NavSidebarButton v-if="isMobile" /> <GlobalSearch /> <UserNav /> <DarkModeToggle /> -- GitLab