import { alias, permanentSkills, romanize } from "@blitzkit/core"; import { Flex } from "@radix-ui/themes"; import { api } from "../core/blitzkit/api"; import { GenericTankComponentButton } from "./ModuleButtons/GenericTankComponentButton"; interface CrewSkillManagerProps { skillLevels: Record; onChange?: (skillLevels: Record) => void; } const skillDefinitions = await api.skillDefinitions(); export function CrewSkillManager({ skillLevels, onChange, }: CrewSkillManagerProps) { return ( {Object.entries(skillDefinitions.classes).map(([tankClass, skills]) => ( {skills.skills.map((skill) => { const level = skillLevels[skill]; return ( 0} discriminator={level === 0 ? undefined : romanize(level)} icon={alias("api", `/icons/skills/${skill}.webp`)} onClick={(event) => { if (!onChange) return; const draft = { ...skillLevels }; if (event.shiftKey) { draft[skill] = draft[skill] === 0 ? 7 : 0; } else { draft[skill] = level - 1; if (draft[skill] < 0) draft[skill] = 7; } onChange(draft); }} /> ); })} ))} ); }