import { useAtomValue, useSetAtom } from 'jotai'; import { isNotNil } from 'ramda'; import { useCallback, useMemo } from 'react'; import { Modal } from '../..'; import { askBeforeCloseFormModalAtom, openFormModalAtom } from '../atoms'; import { useGetItem } from '../hooks/useGetItem'; import type { Form as FormModel, GetItem } from '../models'; import Buttons from './Buttons'; const UpdateModal = ({ decoder, baseEndpoint, itemQueryKey, adapter, Form, title, modalSize = 'medium' }: GetItem & Pick, 'Form' | 'modalSize'> & { title: string; }) => { const setAskBeforeCloseFormModal = useSetAtom(askBeforeCloseFormModalAtom); const openFormModal = useAtomValue(openFormModalAtom); const { initialValues, isLoading } = useGetItem({ adapter, baseEndpoint, decoder, id: openFormModal, itemQueryKey }); const isModalOpen = useMemo( () => isNotNil(openFormModal) && openFormModal !== 'add', [openFormModal] ); const openAskBeforeClose = useCallback( () => setAskBeforeCloseFormModal(true), [setAskBeforeCloseFormModal] ); return ( {title}
); }; export default UpdateModal;