● Zion Boggan
repos/Drophawk/frontend/components/shared/SourceChip.tsx
zionboggan.com ↗
42 lines · tsx
History for this file →
1
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
2
import { cn } from "@/lib/utils";
3
import { sourceHue, sourceInitials } from "@/lib/utils";
4
 
5
const NAMES: Record<string, string> = {
6
  ticketmaster: "Ticketmaster",
7
  seatgeek: "SeatGeek",
8
  axs: "AXS",
9
  stubhub: "StubHub",
10
  vividseats: "Vivid Seats",
11
  fifa: "FIFA",
12
  seetickets: "See Tickets",
13
};
14
 
15
export function SourceChip({ id, size = 24, className }: { id: string; size?: number; className?: string }) {
16
  const name = NAMES[id] ?? id;
17
  const hue = sourceHue(id);
18
  return (
19
    <Tooltip>
20
      <TooltipTrigger asChild>
21
        <span
22
          className={cn(
23
            "inline-flex shrink-0 items-center justify-center rounded-[var(--radius-sm)] font-mono font-semibold",
24
            className,
25
          )}
26
          style={{
27
            width: size,
28
            height: size,
29
            fontSize: size * 0.42,
30
            color: `oklch(0.82 0.12 ${hue})`,
31
            backgroundColor: `oklch(0.82 0.12 ${hue} / 0.14)`,
32
            border: `1px solid oklch(0.82 0.12 ${hue} / 0.28)`,
33
          }}
34
          aria-label={name}
35
        >
36
          {sourceInitials(name)}
37
        </span>
38
      </TooltipTrigger>
39
      <TooltipContent>{name}</TooltipContent>
40
    </Tooltip>
41
  );
42
}