import { useState } from 'react'; import { IconButton } from '@chakra-ui/react'; import { IoPencil } from '@react-icons/all-files/io5/IoPencil'; import { IoTrash } from '@react-icons/all-files/io5/IoTrash'; import { CustomField, CustomFieldLabel } from 'ontime-types'; import CopyTag from '../../../../../common/components/copy-tag/CopyTag'; import Swatch from '../../../../../common/components/input/colour-input/Swatch'; import CustomFieldForm from './CustomFieldForm'; import style from '../FeatureSettings.module.scss'; interface CustomFieldEntryProps { field: string; colour: string; label: string; onEdit: (label: CustomFieldLabel, patch: CustomField) => Promise; onDelete: (label: CustomFieldLabel) => Promise; } export default function CustomFieldEntry(props: CustomFieldEntryProps) { const { colour, label, onEdit, onDelete, field } = props; const [isEditing, setIsEditing] = useState(false); const handleEdit = async (patch: CustomField) => { await onEdit(field, patch); setIsEditing(false); }; if (isEditing) { return ( setIsEditing(false)} onSubmit={handleEdit} initialColour={colour} initialLabel={label} initialKey={field} /> ); } return ( {label} {field} } aria-label='Edit entry' onClick={() => setIsEditing(true)} /> } aria-label='Delete entry' onClick={() => onDelete(field)} /> ); }