import { useEffect, useRef } from 'react'; import { IoCheckmarkDone, IoClose, IoReorderTwo } from 'react-icons/io5'; import { Button } from '@chakra-ui/react'; import { useSortable } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; import { OntimeDelay } from 'ontime-types'; import DelayInput from '../../../common/components/input/delay-input/DelayInput'; import { useEventAction } from '../../../common/hooks/useEventAction'; import { cx } from '../../../common/utils/styleUtils'; import style from './DelayBlock.module.scss'; interface DelayBlockProps { data: OntimeDelay; hasCursor: boolean; } export default function DelayBlock(props: DelayBlockProps) { const { data, hasCursor } = props; const { applyDelay, deleteEvent } = useEventAction(); const handleRef = useRef(null); const { attributes: dragAttributes, listeners: dragListeners, setNodeRef, transform, transition, } = useSortable({ id: data.id, animateLayoutChanges: () => false, }); const dragStyle = { transform: CSS.Translate.toString(transform), transition, }; useEffect(() => { if (hasCursor) { handleRef?.current?.focus(); } }, [hasCursor]); const applyDelayHandler = () => { applyDelay(data.id); }; const cancelDelayHandler = () => { deleteEvent([data.id]); }; const blockClasses = cx([style.delay, hasCursor ? style.hasCursor : null]); return (
); }