import { Fragment, useRef, useState } from 'react'; import { IoClose } from 'react-icons/io5'; import { Dialog } from '@base-ui-components/react/dialog'; import { OntimeEvent } from 'ontime-types'; import Button from '../../../common/components/buttons/Button'; import IconButton from '../../../common/components/buttons/IconButton'; import Textarea from '../../../common/components/input/textarea/Textarea'; import { useEntryActions } from '../../../common/hooks/useEntryAction'; import { EditEvent } from '../operator.types'; import style from './EditModal.module.scss'; interface EditModalProps { event: EditEvent; onClose: () => void; } export default function EditModal(props: EditModalProps) { const { event, onClose } = props; const { updateEntry } = useEntryActions(); const [loading, setLoading] = useState(false); const inputRef = useRef(new Array()); const handleSave = async () => { if (!inputRef.current) return; setLoading(true); const patchObject: Partial = { id: event.id }; inputRef.current.forEach((element) => { if (element.dataset.field && element.defaultValue != element.value) { if (patchObject.custom) { patchObject.custom[element.dataset.field] = element.value; } else { Object.assign(patchObject, { custom: { [element.dataset.field]: element.value } }); } } }); if (patchObject.custom) { await updateEntry(patchObject); } setLoading(false); onClose(); }; return ( { if (!isOpen) onClose(); }} >
{`Editing fields in cue ${event.cue}`}
{event.subscriptions.map((field) => { return (