import cx from 'clsx'; import { isEmpty, isNil } from 'lodash-es'; import { useActionState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useCreateScheme } from '../stores/schemes'; import styles from './NewScheme.module.css'; export function NewScheme() { const createScheme = useCreateScheme(); const navigate = useNavigate(); const [errors, formAction] = useActionState((prevState, formData) => { try { const name = formData.get('name') as string; if (isNil(name) || isEmpty(name)) { throw { name: 'Name is required' }; } const description = (formData.get('description') ?? null) as string | null; const newId = createScheme(name, description); navigate(`../${newId}`); } catch (error) { return error; } return {}; }, {}); return (
); }