● Zion Boggan
repos/Docket/components/position-tag.tsx
zionboggan.com ↗
36 lines · tsx
History for this file →
1
import { clsx } from "@/lib/cx";
2
 
3
export type Position = "Yea" | "Nay" | "Present" | "Not Voting" | string;
4
 
5
 
6
const POSITION_COLOR: Record<string, string> = {
7
  yea: "var(--dk-yea)",
8
  nay: "var(--dk-nay)",
9
  present: "var(--dk-ash)",
10
  "not voting": "var(--dk-ash-2)",
11
};
12
 
13
export function positionColor(position: Position): string {
14
  return POSITION_COLOR[(position || "").toLowerCase()] ?? "var(--dk-ash)";
15
}
16
 
17
export function PositionTag({
18
  position,
19
  className,
20
}: {
21
  position: Position;
22
  className?: string;
23
}) {
24
  const color = positionColor(position);
25
  return (
26
    <span
27
      className={clsx("pill", className)}
28
      style={{
29
        color,
30
        borderColor: `color-mix(in srgb, ${color} 40%, transparent)`,
31
      }}
32
    >
33
      {position || "-"}
34
    </span>
35
  );
36
}