import { Controller, useForm } from 'react-hook-form'; import { Button, Input, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, Select, Switch, } from '@chakra-ui/react'; import { QuickStartData } from 'ontime-types'; import { parseUserTime } from 'ontime-utils'; import { quickProject } from '../../../common/api/db'; import { invalidateAllCaches, maybeAxiosError } from '../../../common/api/utils'; import TimeInput from '../../../common/components/input/time-input/TimeInput'; import { editorSettingsDefaults, useEditorSettings } from '../../../common/stores/editorSettings'; import * as Panel from '../panel-utils/PanelUtils'; import { quickStartDefaults } from './quickStart.utils'; import style from './QuickStart.module.scss'; interface QuickStartProps { isOpen: boolean; onClose: () => void; } export default function QuickStart(props: QuickStartProps) { const { isOpen, onClose } = props; const { defaultWarnTime, defaultDangerTime, setDangerTime, setWarnTime } = useEditorSettings(); const { control, handleSubmit, register, formState: { errors, isSubmitting, isValid }, setError, } = useForm({ defaultValues: quickStartDefaults, values: quickStartDefaults, resetOptions: { keepDirtyValues: true, }, }); const onSubmit = async (formData: QuickStartData) => { try { if (formData.project.title === '') { formData.project.title = 'untitled'; } await quickProject(formData); await invalidateAllCaches(); onClose(); } catch (error) { setError('root', { message: maybeAxiosError(error) }); } }; const warnTimeInMs = parseUserTime(defaultWarnTime); const dangerTimeInMs = parseUserTime(defaultDangerTime); return (
Create new project... name='warnTime' submitHandler={(_field, value) => setWarnTime(value)} time={warnTimeInMs} placeholder={editorSettingsDefaults.warnTime} /> name='dangerTime' submitHandler={(_field, value) => setDangerTime(value)} time={dangerTimeInMs} placeholder={editorSettingsDefaults.dangerTime} /> ( )} /> {errors?.root && {errors.root.message}}
); }