import { CustomField, CustomFieldKey } from 'ontime-types'; import { useState } from 'react'; import { IoPencil, IoTrash } from 'react-icons/io5'; import IconButton from '../../../../../common/components/buttons/IconButton'; import CopyTag from '../../../../../common/components/copy-tag/CopyTag'; import Swatch from '../../../../../common/components/input/colour-input/Swatch'; import Tag from '../../../../../common/components/tag/Tag'; import * as Panel from '../../../panel-utils/PanelUtils'; import CustomFieldForm from './CustomFieldForm'; import style from '../ManagePanel.module.scss'; interface CustomFieldEntryProps { colour: string; label: string; fieldKey: string; type: CustomField['type']; onEdit: (key: CustomFieldKey, patch: CustomField) => Promise; onDelete: (key: CustomFieldKey) => Promise; } export default function CustomFieldEntry(props: CustomFieldEntryProps) { const { colour, label, fieldKey, type, onEdit, onDelete } = props; const [isEditing, setIsEditing] = useState(false); const handleEdit = async (patch: CustomField) => { await onEdit(fieldKey, patch); setIsEditing(false); }; if (isEditing) { return ( setIsEditing(false)} onSubmit={handleEdit} initialColour={colour} initialLabel={label} initialKey={fieldKey} initialType={type} /> ); } return ( {type} {label} {fieldKey} setIsEditing(true)}> onDelete(fieldKey)}> ); }