All checks were successful
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
"use client"
|
|
|
|
import Image from "next/image"
|
|
|
|
import {
|
|
SidebarMenu,
|
|
SidebarMenuButton,
|
|
SidebarMenuItem,
|
|
} from "@/components/ui/sidebar"
|
|
|
|
interface SidebarBrandProps {
|
|
logoSrc: string
|
|
logoAlt: string
|
|
title: string
|
|
subtitle: string
|
|
}
|
|
|
|
export function SidebarBrand({ logoSrc, logoAlt, title, subtitle }: SidebarBrandProps) {
|
|
return (
|
|
<SidebarMenu>
|
|
<SidebarMenuItem>
|
|
<SidebarMenuButton
|
|
asChild
|
|
size="lg"
|
|
className="cursor-default select-none hover:bg-transparent hover:text-inherit active:bg-transparent active:text-inherit focus-visible:ring-0"
|
|
>
|
|
<div className="flex items-center gap-3">
|
|
<div className="flex h-12 w-12 items-center justify-center rounded-lg">
|
|
<Image
|
|
src={logoSrc}
|
|
alt={logoAlt}
|
|
width={48}
|
|
height={48}
|
|
className="h-12 w-12 object-contain"
|
|
priority
|
|
/>
|
|
</div>
|
|
<div className="flex flex-col leading-none">
|
|
<span className="text-lg font-semibold">{title}</span>
|
|
<span className="text-sm text-muted-foreground">{subtitle}</span>
|
|
</div>
|
|
</div>
|
|
</SidebarMenuButton>
|
|
</SidebarMenuItem>
|
|
</SidebarMenu>
|
|
)
|
|
}
|