import React from 'react'; import { Button, FormControl, FormErrorMessage, FormLabel, Input, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay } from '@chakra-ui/react'; import { SubmitHandler, useForm } from 'react-hook-form'; import { ApiError, ItemCreate } from '../../client'; import useCustomToast from '../../hooks/useCustomToast'; import { useItemsStore } from '../../store/items-store'; interface AddItemProps { isOpen: boolean; onClose: () => void; } const AddItem: React.FC = ({ isOpen, onClose }) => { const showToast = useCustomToast(); const { register, handleSubmit, reset, formState: { errors, isSubmitting } } = useForm({ mode: 'onBlur', criteriaMode: 'all', defaultValues: { title: '', description: '', }, }); const { addItem } = useItemsStore(); const onSubmit: SubmitHandler = async (data) => { try { await addItem(data); showToast('Success!', 'Item created successfully.', 'success'); reset(); onClose(); } catch (err) { const errDetail = (err as ApiError).body.detail; showToast('Something went wrong.', `${errDetail}`, 'error'); } }; return ( <> Add Item Title {errors.title && {errors.title.message}} Description ); }; export default AddItem;