import * as React from "react"; import { CharClass, ClassUtils, Race, RaceUtils, } from "@dndbeyond/character-rules-engine/es"; interface Props { classes: Array | null; gender: string | null; species: Race | null; className: string; } export default class CharacterSummary extends React.PureComponent { static defaultProps = { className: "", }; renderClassList(): React.ReactNode { const { classes } = this.props; if (classes === null) { return null; } const list: Array = classes.map( (charClass) => `${ClassUtils.getName(charClass)} ${ClassUtils.getLevel(charClass)}` ); return ( {list.join(" / ")} ); } render() { const { species, gender, className } = this.props; const classNames: Array = ["ddbc-character-summary", className]; let speciesNode: React.ReactNode; if (species !== null) { speciesNode = RaceUtils.getFullName(species); } return (
{gender && ( {gender} )} {speciesNode && ( {speciesNode} )} {this.renderClassList()}
); } }