import { type CSSProperties, memo } from "react"; import { type ProviderDriverKind } from "@t3tools/contracts"; import { providerInstanceInitials } from "@t3tools/client-runtime/state/provider-instance-display"; import { PROVIDER_ICON_BY_PROVIDER } from "./providerIconUtils"; import { cn } from "~/lib/utils"; export { providerInstanceInitials }; export const ProviderInstanceIcon = memo(function ProviderInstanceIcon(props: { driverKind: ProviderDriverKind; displayName: string; accentColor?: string | undefined; showBadge?: boolean; badgeContent?: "initials" | "none"; className?: string; iconClassName?: string; badgeClassName?: string; statusDotClassName?: string; indicatorBackground?: string; }) { const Icon = PROVIDER_ICON_BY_PROVIDER[props.driverKind] ?? null; const indicatorBackground = props.indicatorBackground ?? "var(--card)"; const accentStyle = props.accentColor ? ({ "--provider-accent": props.accentColor } as CSSProperties) : undefined; const badgeContent = props.badgeContent ?? "initials"; return ( {Icon ? ( ) : ( {providerInstanceInitials(props.displayName)} )} {props.statusDotClassName ? ( ) : null} {props.showBadge ? ( {badgeContent === "initials" ? providerInstanceInitials(props.displayName) : null} ) : null} ); });