import { memo, useEffect, useState } from 'react'; import { Tooltip } from '@chakra-ui/react'; import { IoArrowDown } from '@react-icons/all-files/io5/IoArrowDown'; import { IoArrowUp } from '@react-icons/all-files/io5/IoArrowUp'; import { IoFlag } from '@react-icons/all-files/io5/IoFlag'; import { IoPeople } from '@react-icons/all-files/io5/IoPeople'; import { IoPlay } from '@react-icons/all-files/io5/IoPlay'; import { IoPlayForward } from '@react-icons/all-files/io5/IoPlayForward'; import { IoPlaySkipForward } from '@react-icons/all-files/io5/IoPlaySkipForward'; import { IoStop } from '@react-icons/all-files/io5/IoStop'; import { IoTime } from '@react-icons/all-files/io5/IoTime'; import { EndAction, MaybeString, Playback, TimerType, TimeStrategy } from 'ontime-types'; import { cx } from '../../../common/utils/styleUtils'; import { tooltipDelayMid } from '../../../ontimeConfig'; import EditableBlockTitle from '../common/EditableBlockTitle'; import TimeInputFlow from '../time-input-flow/TimeInputFlow'; import EventBlockPlayback from './composite/EventBlockPlayback'; import EventBlockProgressBar from './composite/EventBlockProgressBar'; import style from './EventBlock.module.scss'; interface EventBlockInnerProps { timeStart: number; timeEnd: number; duration: number; timeStrategy: TimeStrategy; linkStart: MaybeString; eventId: string; eventIndex: number; isPublic: boolean; endAction: EndAction; timerType: TimerType; title: string; note: string; delay: number; isNext: boolean; skip: boolean; loaded: boolean; playback?: Playback; isRolling: boolean; } const EventBlockInner = (props: EventBlockInnerProps) => { const { timeStart, timeEnd, duration, timeStrategy, linkStart, eventId, isPublic = true, endAction, timerType, title, note, delay, isNext, skip = false, loaded, playback, isRolling, } = props; const [renderInner, setRenderInner] = useState(false); useEffect(() => { setRenderInner(true); }, []); const eventIsPlaying = playback === Playback.Play; const eventIsPaused = playback === Playback.Pause; const playBtnStyles = { _hover: {} }; if (!skip && eventIsPlaying) { playBtnStyles._hover = { bg: '#c05621' }; // $ontime-paused } else if (!skip && !eventIsPlaying) { playBtnStyles._hover = {}; } return !renderInner ? null : ( <>