import type Collection from '#models/collection'; import { FormEvent } from 'react'; import { useTranslation } from 'react-i18next'; import Checkbox from '~/components/common/form/checkbox'; import TextBox from '~/components/common/form/textbox'; import BackToDashboard from '~/components/common/navigation/back_to_dashboard'; import FormLayout from '~/components/layouts/form_layout'; import { Visibility } from '../../../app/enums/visibility'; export type FormCollectionData = { name: string; description: string | null; visibility: Visibility; nextId: Collection['id']; }; interface FormCollectionProps { title: string; canSubmit: boolean; disableHomeLink?: boolean; data: FormCollectionData; errors?: Record>; disableInputs?: boolean; submitBtnDanger?: boolean; setData: (name: string, value: any) => void; handleSubmit: () => void; } export default function FormCollection({ title, canSubmit, disableHomeLink, data, errors, disableInputs = false, submitBtnDanger = false, setData, handleSubmit, }: FormCollectionProps) { const { t } = useTranslation('common'); const handleOnCheck: FormCollectionProps['setData'] = (name, value) => setData(name, value ? Visibility.PUBLIC : Visibility.PRIVATE); const onSubmit = (event: FormEvent) => { event.preventDefault(); handleSubmit(); }; return ( ); }