import { useState } from 'react'; import { Alert, AlertDescription, AlertIcon, Button } from '@chakra-ui/react'; import { IoAdd } from '@react-icons/all-files/io5/IoAdd'; import { CustomField, CustomFieldLabel } from 'ontime-types'; import { deleteCustomField, editCustomField, postCustomField } from '../../../../../common/api/customFields'; import ExternalLink from '../../../../../common/components/external-link/ExternalLink'; import useCustomFields from '../../../../../common/hooks-query/useCustomFields'; import * as Panel from '../../PanelUtils'; import CustomFieldEntry from './CustomFieldEntry'; import CustomFieldForm from './CustomFieldForm'; const customFieldsDocsUrl = 'https://docs.getontime.no/features/custom-fields/'; export default function CustomFields() { const { data, refetch } = useCustomFields(); const [isAdding, setIsAdding] = useState(false); const handleInitiateCreate = () => { setIsAdding(true); }; const handleCancel = () => { setIsAdding(false); }; const handleCreate = async (customField: CustomField) => { await postCustomField(customField); refetch(); setIsAdding(false); }; const handleEditField = async (label: CustomFieldLabel, customField: CustomField) => { await editCustomField(label, customField); refetch(); }; const handleDelete = async (label: string) => { try { await deleteCustomField(label); refetch(); } catch (_error) { /** we do not handle errors here */ } }; return ( Custom fields Custom fields allow for additional information to be added to an event (eg. light, sound, camera).

This data is not used by Ontime. See the docs
{isAdding && } Colour Name {Object.entries(data).map(([key, { colour, label }]) => { return ( ); })}
); }