import { ModalBody } from '@chakra-ui/modal'; import { FormLabel, FormControl, Input, Button } from '@chakra-ui/react'; import { getOSC, oscPlaceholderSettings, postOSC } from 'app/api/ontimeApi'; import { useEffect, useState } from 'react'; import { useFetch } from 'app/hooks/useFetch'; import { OSC_SETTINGS } from 'app/api/apiConstants'; import { showErrorToast } from 'common/helpers/toastManager'; import style from './Modals.module.scss'; export default function AppSettingsModal() { const { data, status } = useFetch(OSC_SETTINGS, getOSC); const [formData, setFormData] = useState(oscPlaceholderSettings); const [changed, setChanged] = useState(false); const [submitting, setSubmitting] = useState(false); useEffect(() => { if (data == null) return; setFormData({ ...data }); }, [data]); const submitHandler = async (event) => { event.preventDefault(); const f = formData; let e = { status: false, message: '' }; // Validate fields if (f.port < 1024 || f.port > 65535) { // Port in incorrect range e.status = true; e.message += 'OSC IN Port in incorrect range (1024 - 65535)'; } else if (f.portOut < 1024 || f.portOut > 65535) { // Port in incorrect range e.status = true; e.message += 'OSC OUT Port in incorrect range (1024 - 65535)'; } else if (f.port === f.portOut) { // Cant use the same port e.status = true; e.message += 'OSC IN and OUT Ports cant be the same'; } // set fields with error if (e.status) { showErrorToast('Invalid Input', e.message); return; } // Post here postOSC(formData); setChanged(false); setSubmitting(false); }; return ( <>
> ); }