Files
blitzkit/packages/website/src/components/TankRowHeaderCell.tsx
T

70 lines
2.0 KiB
TypeScript
Raw Normal View History

2025-10-14 12:11:31 -05:00
import { type TankDefinition, tankIcon, TankType } from "@blitzkit/core";
import { useLocale } from "../hooks/useLocale";
import { classIcons } from "./ClassIcon";
import { ExperimentIcon } from "./ExperimentIcon";
import { LinkI18n } from "./LinkI18n";
import { StickyRowHeaderCell } from "./StickyRowHeaderCell";
2024-06-29 21:22:12 -05:00
interface TankRowHeaderCellProps {
tank: TankDefinition;
}
export function TankRowHeaderCell({ tank }: TankRowHeaderCellProps) {
2025-01-14 19:22:41 -06:00
const { locale, unwrap } = useLocale();
2024-07-02 18:42:23 -05:00
const Icon = classIcons[tank.class];
2024-06-29 21:22:12 -05:00
return (
2025-10-14 12:11:31 -05:00
<StickyRowHeaderCell style={{ overflow: "hidden" }}>
2025-05-15 23:44:20 -05:00
<LinkI18n locale={locale} href={`/tanks/${tank.slug}`} tabIndex={-1}>
2024-06-29 21:22:12 -05:00
<img
2025-01-14 19:22:41 -06:00
alt={unwrap(tank.name)}
2024-06-29 21:22:12 -05:00
draggable={false}
src={tankIcon(tank.id)}
style={{
2025-10-14 12:11:31 -05:00
margin: "calc(-1 * var(--table-cell-padding)) 0",
height: "calc(100% + 2 * var(--table-cell-padding))",
aspectRatio: "4 / 3",
objectFit: "cover",
2024-06-29 21:22:12 -05:00
}}
/>
2024-12-27 14:01:59 -06:00
</LinkI18n>
2024-06-29 21:22:12 -05:00
2024-12-27 14:01:59 -06:00
<LinkI18n
locale={locale}
2024-07-02 18:42:23 -05:00
color={
2024-10-05 15:57:34 -05:00
tank.type === TankType.COLLECTOR
2025-10-14 12:11:31 -05:00
? "blue"
2024-10-05 15:57:34 -05:00
: tank.type === TankType.PREMIUM
2025-10-14 12:11:31 -05:00
? "amber"
: "gray"
2024-07-02 18:42:23 -05:00
}
2024-10-05 15:57:34 -05:00
highContrast={tank.type === TankType.RESEARCHABLE}
2024-06-30 18:26:05 -05:00
underline="hover"
wrap="nowrap"
2025-05-15 23:44:20 -05:00
href={`/tanks/${tank.slug}`}
2024-06-30 18:26:05 -05:00
style={{
2025-10-14 12:11:31 -05:00
paddingLeft: "var(--space-2)",
display: "flex",
alignItems: "center",
gap: "var(--space-1)",
whiteSpace: "nowrap",
overflow: "hidden",
textOverflow: "ellipsis",
2024-06-30 18:26:05 -05:00
}}
2025-10-14 12:11:31 -05:00
size={{ initial: "1", sm: "2" }}
2024-06-30 18:26:05 -05:00
>
2024-07-02 20:12:15 -05:00
<Icon
width="1em"
height="1em"
2025-10-14 12:11:31 -05:00
style={{ minWidth: "1em", minHeight: "1em" }}
2024-07-02 20:12:15 -05:00
/>
2024-07-02 18:42:23 -05:00
{tank.testing && (
2025-10-14 12:11:31 -05:00
<ExperimentIcon style={{ width: "1em", height: "1em" }} />
2024-07-02 18:42:23 -05:00
)}
2024-07-18 19:08:30 -05:00
2025-01-14 19:22:41 -06:00
{unwrap(tank.name)}
2024-12-27 14:01:59 -06:00
</LinkI18n>
2024-07-07 21:13:40 -05:00
</StickyRowHeaderCell>
2024-06-29 21:22:12 -05:00
);
}