Files
Alpha/src/components/AppSidebar.vue
T

105 lines
2.8 KiB
Vue

<script setup lang="ts">
import { computed } from 'vue'
import {
LayoutDashboard,
Calendar,
Clock,
ChevronRight,
} from 'lucide-vue-next'
import {
Sidebar,
SidebarContent,
SidebarFooter,
SidebarGroup,
SidebarGroupLabel,
SidebarHeader,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
SidebarMenuSub,
SidebarMenuSubButton,
SidebarMenuSubItem,
SidebarRail,
} from '@/components/ui/sidebar'
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'
import NavProjects from './NavProjects.vue'
import NavUser from './NavUser.vue'
defineProps<{
activeTab: string
}>()
const emit = defineEmits<{
'update:activeTab': [value: string]
}>()
function setTab(tab: string) {
emit('update:activeTab', tab)
}
</script>
<template>
<Sidebar collapsible="icon" variant="inset">
<SidebarHeader>
<SidebarMenu>
<SidebarMenuItem>
<SidebarMenuButton size="lg" as="button" @click="setTab('dashboard')">
<div class="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
<span class="font-bold text-sm">A</span>
</div>
<div class="grid flex-1 text-left text-sm leading-tight">
<span class="truncate font-semibold">Alpha</span>
<span class="truncate text-xs">Alpha</span>
</div>
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</SidebarHeader>
<SidebarContent>
<SidebarGroup>
<SidebarGroupLabel>Navegación</SidebarGroupLabel>
<SidebarMenu>
<SidebarMenuItem>
<SidebarMenuButton
:is-active="activeTab === 'dashboard'"
:tooltip="'Diagnóstico'"
@click="setTab('dashboard')"
>
<LayoutDashboard />
<span>Diagnóstico</span>
</SidebarMenuButton>
</SidebarMenuItem>
<SidebarMenuItem>
<SidebarMenuButton
:is-active="activeTab === 'calendar'"
:tooltip="'Calendario'"
@click="setTab('calendar')"
>
<Calendar />
<span>Calendario</span>
</SidebarMenuButton>
</SidebarMenuItem>
<SidebarMenuItem>
<SidebarMenuButton
:is-active="activeTab === 'scheduler'"
:tooltip="'Recetas'"
@click="setTab('scheduler')"
>
<Clock />
<span>Recetas</span>
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</SidebarGroup>
<NavProjects />
</SidebarContent>
<SidebarFooter>
<NavUser />
</SidebarFooter>
<SidebarRail />
</Sidebar>
</template>