import { useEffect, useState } from 'react'; import { isOntimeDelay, isOntimeEvent, isOntimeGroup, isOntimeMilestone, OntimeEvent, OntimeGroup, OntimeMilestone, } from 'ontime-types'; import useRundown from '../../../common/hooks-query/useRundown'; import { useEventSelection } from '../useEventSelection'; import EventEditorFooter from './composite/EventEditorFooter'; import EventEditor from './EventEditor'; import EventEditorEmpty from './EventEditorEmpty'; import GroupEditor from './GroupEditor'; import MilestoneEditor from './MilestoneEditor'; import style from './EntryEditor.module.scss'; export default function RundownEntryEditor() { const selectedEvents = useEventSelection((state) => state.selectedEvents); const { data } = useRundown(); const [entry, setEntry] = useState(null); useEffect(() => { if (data.order.length === 0) { setEntry(null); return; } const selectedEventId = Array.from(selectedEvents).at(0); if (!selectedEventId) { setEntry(null); return; } const event = data.entries[selectedEventId]; if (event && !isOntimeDelay(event)) { setEntry(event); } else { setEntry(null); } }, [data.order, data.entries, selectedEvents]); if (!entry) { return ; } if (isOntimeEvent(entry)) { return (
); } if (isOntimeMilestone(entry)) { return (
); } if (isOntimeGroup(entry)) { return (
); } return null; }