import { visuallyHidden } from "@mui/utils"; import clsx from "clsx"; import { FC, HTMLAttributes, useContext } from "react"; import { useSelector } from "react-redux"; import { AdvantageIcon, BoxBackground, DigitalDiceWrapper, InitiativeBoxSvg, } from "@dndbeyond/character-components/es"; import { DiceTools, RollKind, RollType } from "@dndbeyond/dice"; import { GameLogContext } from "@dndbeyond/game-log-components"; import { useCharacterTheme } from "~/contexts/CharacterTheme"; import { useSidebar } from "~/contexts/Sidebar"; import { useCharacterEngine } from "~/hooks/useCharacterEngine"; import { appEnvSelectors, characterRollContextSelectors, } from "~/tools/js/Shared/selectors"; import { isNotNullOrUndefined } from "~/tools/js/Shared/utils/TypeScript/utils"; import { PaneComponentEnum } from "../Sidebar/types"; import styles from "./styles.module.css"; import { NumberDisplay } from "~/components/NumberDisplay"; interface Props extends HTMLAttributes { isMobile?: boolean; isTablet?: boolean; } export const InitiativeBox: FC = ({ isMobile, isTablet, ...props }) => { const [{ messageTargetOptions, defaultMessageTargetOption, userId }] = useContext(GameLogContext); const { pane: { paneHistoryStart }, } = useSidebar(); const handleClick = (evt: React.MouseEvent): void => { evt.stopPropagation(); evt.nativeEvent.stopImmediatePropagation(); paneHistoryStart(PaneComponentEnum.INITIATIVE); }; const { hasInitiativeAdvantage, processedInitiative: initiative, characterTheme: theme, } = useCharacterEngine(); const { isDarkMode } = useCharacterTheme(); const diceEnabled = useSelector(appEnvSelectors.getDiceEnabled); const rollContext = useSelector( characterRollContextSelectors.getCharacterRollContext ); return (
{!isMobile && (
Initiative
)}
{!isMobile && ( <>

Initiative

)}
{hasInitiativeAdvantage && (
)} {isMobile &&
Initiative
}
); };