import { ModalBody } from '@chakra-ui/modal'; import { FormLabel, Input, Textarea } from '@chakra-ui/react'; import { fetchEvent, postEvent } from 'app/api/eventApi'; import { useEffect, useState } from 'react'; import { useFetch } from 'app/hooks/useFetch'; import { EVENT_TABLE } from 'app/api/apiConstants'; import style from './Modals.module.scss'; import { eventPlaceholderSettings } from '../../app/api/ontimeApi'; import SubmitContainer from './SubmitContainer'; import { inputProps } from './modalHelper'; export default function SettingsModal() { const { data, status, refetch } = useFetch(EVENT_TABLE, fetchEvent); const [formData, setFormData] = useState(eventPlaceholderSettings); const [changed, setChanged] = useState(false); const [submitting, setSubmitting] = useState(false); /** * Set formdata from server state */ useEffect(() => { if (data == null) return; if (changed) return; setFormData({ title: data.title, url: data.url, publicInfo: data.publicInfo, backstageInfo: data.backstageInfo, endMessage: data.endMessage, }); }, [changed, data]); /** * Validate and submit data */ const submitHandler = async (event) => { event.preventDefault(); setSubmitting(true); await postEvent(formData); setChanged(false); setSubmitting(false); }; /** * Reverts local state equals to server state */ const revert = async () => { setChanged(false); await refetch(); }; /** * Handles change of input field in local state * @param {string} field - object parameter to update * @param {string} value - new object parameter value */ const handleChange = (field, value) => { const temp = { ...formData }; temp[field] = value; setFormData(temp); setChanged(true); }; return (

Options related to the running event
Affects rendered views

Event Data
Event Title handleChange('title', event.target.value)} />
Additional Screen Info
Event URL
Shown as a QR code in some views
handleChange('url', event.target.value)} />
Public Info
Information to be shown on public screens