import React from "react"; import { Constants, CharacterTraits, } from "@dndbeyond/character-rules-engine/es"; interface Props { traits: CharacterTraits; traitKey: string; label?: string; fallback: string; onClick?: (traitKey: string) => void; } export default class TraitContent extends React.PureComponent { static defaultProps = { fallback: "+ Add", }; handleTraitShow = (evt: React.MouseEvent): void => { const { traitKey, onClick } = this.props; if (onClick) { evt.stopPropagation(); evt.nativeEvent.stopImmediatePropagation(); onClick(traitKey); } }; render() { const { traits, traitKey, label, fallback } = this.props; let traitData = traits[traitKey as Constants.TraitTypeEnum]; let hasContent: boolean = !!traitData; let content: string = !!traitData ? traitData : fallback; let classNames: Array = ["ct-trait-content"]; if (!hasContent) { classNames.push("ct-trait-content--no-content"); } return (
{label &&
{label}
}
{content}
); } }