import { useEffect } from 'react'; import { useForm } from 'react-hook-form'; import { Alert, AlertDescription, AlertIcon, AlertTitle, Button, Input, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, Textarea, } from '@chakra-ui/react'; import type { ProjectData } from 'ontime-types'; import { PROJECT_DATA, RUNDOWN } from '../../../common/api/apiConstants'; import { postNew } from '../../../common/api/ontimeApi'; import useProjectData from '../../../common/hooks-query/useProjectData'; import { projectDataPlaceholder } from '../../../common/models/ProjectData'; import { ontimeQueryClient } from '../../../common/queryClient'; import styles from '../Modal.module.scss'; interface QuickStartProps { onClose: () => void; isOpen: boolean; } export default function QuickStart({ onClose, isOpen }: QuickStartProps) { const { data, status } = useProjectData(); const { handleSubmit, register, reset, formState: { isSubmitting }, } = useForm({ defaultValues: data, resetOptions: { keepDirtyValues: true, }, }); useEffect(() => { if (data) reset(data); }, [data, reset]); const onSubmit = async (data: Partial) => { try { await postNew(data); await ontimeQueryClient.invalidateQueries({ queryKey: PROJECT_DATA }); await ontimeQueryClient.invalidateQueries({ queryKey: RUNDOWN }); onClose(); } catch (_) { /* WE DO NOT HANDLE ERRORS */ } }; const onReset = () => reset(projectDataPlaceholder); const disableButtons = status !== 'success' || isSubmitting; return ( Ontime quick start
Note On submit, application options will be kept but rundown and project data will be reset