import { Checkbox, Select, TextInput } from '@mantine/core'; import { FormEvent } from 'react'; import { useTranslation } from 'react-i18next'; import BackToDashboard from '~/components/common/navigation/back_to_dashboard'; import useSearchParam from '~/hooks/use_search_param'; import { FormLayout, FormLayoutProps } from '~/layouts/form_layout'; import { Collection } from '~/types/app'; export type FormLinkData = { name: string; description: string | null; url: string; favorite: boolean; collectionId: Collection['id']; }; interface FormLinkProps extends FormLayoutProps { data: FormLinkData; errors?: Record>; collections: Collection[]; disableInputs?: boolean; setData: (name: string, value: any) => void; handleSubmit: () => void; } export function FormLink({ data, errors, collections, disableInputs = false, setData, handleSubmit, ...props }: FormLinkProps) { const { t } = useTranslation('common'); const collectionId = Number(useSearchParam('collectionId')) ?? collections?.[0].id; const onSubmit = (event: FormEvent) => { event.preventDefault(); handleSubmit(); }; return ( setData('name', target.value)} value={data.name} readOnly={disableInputs} error={errors?.name} mt="md" autoFocus required /> setData('url', target.value)} value={data.url ?? undefined} readOnly={disableInputs} error={errors?.link} mt="md" required /> setData('description', target.value)} value={data.description ?? undefined} readOnly={disableInputs} error={errors?.description} mt="md" />