import React from "react"; import { RollGroupContract } from "@dndbeyond/character-rules-engine/es"; import { DiceRollGroup, DiceRollGroupProps } from "../DiceRollGroup"; import { Button } from "../legacy/Button"; export interface DiceRollGroupManagerProps { groups: Array; showAddGroupButton?: boolean; onAddGroup?: () => void; componentKey: DiceRollGroupProps["componentKey"]; options?: DiceRollGroupProps["options"]; exclusiveOptions?: DiceRollGroupProps["exclusiveOptions"]; diceRollRequest: DiceRollGroupProps["diceRollRequest"]; onConfirm?: DiceRollGroupProps["onConfirm"]; confirmButtonText?: DiceRollGroupProps["confirmButtonText"]; onRollError?: DiceRollGroupProps["onRollError"]; onRemoveGroup?: DiceRollGroupProps["onRemoveGroup"]; onUpdateGroup?: DiceRollGroupProps["onUpdateGroup"]; onResetGroup: DiceRollGroupProps["onResetGroup"]; onSetRollStatus: DiceRollGroupProps["onSetRollStatus"]; rollStatusLookup: DiceRollGroupProps["rollStatusLookup"]; onUpdateDiceRoll: DiceRollGroupProps["onUpdateDiceRoll"]; } const DiceRollGroupManager: React.FunctionComponent< DiceRollGroupManagerProps > = ({ componentKey, groups, options, diceRollRequest, onConfirm, confirmButtonText, onRollError, showAddGroupButton = false, onUpdateGroup, onResetGroup, onAddGroup, onRemoveGroup, exclusiveOptions, onSetRollStatus, rollStatusLookup, onUpdateDiceRoll, }) => { return (
{showAddGroupButton && ( )} {`Groups: ${groups.length}`}
{groups.map((group, idx) => { return ( 1} onRemoveGroup={onRemoveGroup} onResetGroup={onResetGroup} diceRollRequest={diceRollRequest} diceRolls={group.rollResults} onSetRollStatus={onSetRollStatus} rollStatusLookup={rollStatusLookup} onUpdateDiceRoll={onUpdateDiceRoll} /> ); })}
); }; export default React.memo(DiceRollGroupManager);