import { type ReactNode } from "react"; import { Link } from "@/lib/router"; import { cn } from "../lib/utils"; interface EntityRowProps { leading?: ReactNode; identifier?: string; title: string; subtitle?: string; trailing?: ReactNode; selected?: boolean; to?: string; onClick?: () => void; className?: string; } export function EntityRow({ leading, identifier, title, subtitle, trailing, selected, to, onClick, className, }: EntityRowProps) { const isClickable = !!(to || onClick); const classes = cn( "flex items-center gap-3 px-4 py-2 text-sm border-b border-border last:border-b-0 transition-colors", isClickable && "cursor-pointer hover:bg-accent/50", selected && "bg-accent/30", className ); const content = ( <> {leading &&
{leading}
}
{identifier && ( {identifier} )} {title}
{subtitle && (

{subtitle}

)}
{trailing &&
{trailing}
} ); if (to) { return ( {content} ); } return (
{content}
); }