Files
blitzkit/packages/website-ue/src/core/tankopedia/renderCharacteristic.ts
T

29 lines
832 B
TypeScript
Raw Normal View History

2025-12-24 19:48:01 -06:00
import type { CharacteristicOutput } from "./characteristics";
import type { CharacteristicRenderConfig } from "./characteristicsOrder";
export function renderCharacteristic(
characteristic: CharacteristicOutput,
config: CharacteristicRenderConfig
): string | null {
if (characteristic === null) return null;
2025-12-26 14:14:29 -06:00
if (config.render) return config.render(characteristic);
2025-12-24 19:48:01 -06:00
if (typeof characteristic === "number") {
if (Number.isFinite(characteristic)) {
if (config.decimals === undefined) {
return characteristic.toString();
}
return characteristic.toFixed(config.decimals);
}
return `${characteristic < 0 ? "-" : ""}∞`;
}
2025-12-26 14:14:29 -06:00
if (typeof characteristic === "string") {
return characteristic;
}
2025-12-24 19:48:01 -06:00
return characteristic.map((c) => renderCharacteristic(c, config)).join(", ");
}