shadcn-vue/apps/www/src/registry/default/block/DemoSidebarMenu.vue
2024-11-25 18:01:47 +08:00

68 lines
1.4 KiB
Vue

<script setup lang="ts">
import {
Sidebar,
SidebarContent,
SidebarGroup,
SidebarGroupContent,
SidebarGroupLabel,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
SidebarProvider,
} from '@/registry/default/ui/sidebar'
import { Frame, LifeBuoy, Map, PieChart, Send } from 'lucide-vue-next'
const projects = [
{
name: 'Design Engineering',
url: '#',
icon: Frame,
},
{
name: 'Sales & Marketing',
url: '#',
icon: PieChart,
},
{
name: 'Travel',
url: '#',
icon: Map,
},
{
name: 'Support',
url: '#',
icon: LifeBuoy,
},
{
name: 'Feedback',
url: '#',
icon: Send,
},
]
</script>
<template>
<SidebarProvider>
<Sidebar>
<SidebarContent>
<SidebarGroup>
<SidebarGroupLabel>Projects</SidebarGroupLabel>
<SidebarGroupContent>
<SidebarMenu>
<SidebarMenuItem v-for="project in projects" :key="project.name">
<SidebarMenuButton as-child>
<a :href="project.url">
<component :is="project.icon" />
<span>{{ project.name }}</span>
</a>
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</SidebarGroupContent>
</SidebarGroup>
</SidebarContent>
</Sidebar>
</SidebarProvider>
</template>