import { MenuDivider, MenuItem, MenuList } from '@chakra-ui/react'; import { IoAdd } from '@react-icons/all-files/io5/IoAdd'; import { IoArrowDown } from '@react-icons/all-files/io5/IoArrowDown'; import { IoArrowUp } from '@react-icons/all-files/io5/IoArrowUp'; import { IoDuplicateOutline } from '@react-icons/all-files/io5/IoDuplicateOutline'; import { IoOptions } from '@react-icons/all-files/io5/IoOptions'; import { IoTrash } from '@react-icons/all-files/io5/IoTrash'; import { OntimeEvent, SupportedEvent } from 'ontime-types'; import { useEventAction } from '../../../common/hooks/useEventAction'; import { cloneEvent } from '../../../common/utils/eventsManager'; interface CuesheetTableMenuProps { event: OntimeEvent; entryIndex: number; showModal: (entryId: string) => void; } export default function CuesheetTableMenu(props: CuesheetTableMenuProps) { const { event, entryIndex, showModal } = props; const { addEvent, reorderEvent, deleteEvent } = useEventAction(); const handleCloneEvent = () => { const newEvent = cloneEvent(event); try { addEvent(newEvent, { after: event.id }); } catch (_error) { // we do not handle errors here } }; return ( } onClick={() => showModal(event.id)}> Edit ... } onClick={() => addEvent({ type: SupportedEvent.Event }, { before: event.id })}> Add event above } onClick={() => addEvent({ type: SupportedEvent.Event }, { after: event.id })}> Add event below } onClick={handleCloneEvent}> Clone event } onClick={() => reorderEvent(event.id, entryIndex, entryIndex - 1)} > Move up } onClick={() => reorderEvent(event.id, entryIndex, entryIndex + 1)}> Move down } onClick={() => deleteEvent([event.id])}> Delete ); }