import { Button, Container, Drawer, Group, Stack, Textarea, TextInput, } from '@mantine/core'; import { useForm } from '@mantine/form'; import useCreateCollection from '../../lib/mutations/useCreateCollection'; import { notifications } from '@mantine/notifications'; import { DEFAULT_OVERLAY_PROPS } from '@/styles/overlays'; interface Props { isOpen: boolean; onClose: () => void; initialName?: string; onCreate?: (newCollection: { id: string; name: string; cardCount: number; }) => void; } export default function createCollectionDrawer(props: Props) { const createCollection = useCreateCollection(); const form = useForm({ initialValues: { name: props.initialName ?? '', description: '', }, }); const handleCreateCollection = (e: React.FormEvent) => { e.preventDefault(); createCollection.mutate( { name: form.getValues().name, description: form.getValues().description, }, { onSuccess: (newCollection) => { props.onClose(); props.onCreate && props.onCreate({ id: newCollection.collectionId, name: form.getValues().name, cardCount: 0, }); }, onError: () => { notifications.show({ message: 'Could not create collection.', }); }, onSettled: () => { form.reset(); }, }, ); }; return ( Create Collection