import PropTypes from 'prop-types' import {useEffect, useRef, useState} from 'react' import FormHandler from '../form-handler.js' import {handleSubmit} from '@/lib/directus.js' import {formatFormContent} from '@/lib/format.js' import SessionExpired from '@/components/session/session-expired.js' export default function HandleCreate({ session, selectedTitre, isOpen, setIsOpen, setError, setSuccess, setIsErrorAlertOpen, setIsSuccessAlertOpen, collection, listItems }) { const countdownRef = useRef() const [selectValue, setSelectValue] = useState('') useEffect(() => { if (listItems && listItems.length > 0) { setSelectValue(listItems[0].id) } }, [listItems]) const handleFormSubmit = async e => { e.preventDefault() let requestObject const formattedContent = formatFormContent(e.currentTarget) switch (collection) { case 'commentaires': { requestObject = { contenu: formattedContent, titre: selectedTitre.id, status: 'draft', } break } case 'titres': { requestObject = { contenu: formattedContent, status: 'draft', } break } case 'articles': { requestObject = { contenu: formattedContent, titre: selectValue, status: 'draft', } break } // No default } await handleSubmit({ userId: session.user.userId, accessToken: session.user.accessToken, content: formattedContent, collection, requestObject, setError, setSuccess, setIsErrorAlertOpen, setIsSuccessAlertOpen, countdownRef, }) setIsOpen(false) } if (collection === 'titres') { return ( <> ) } if (collection === 'commentaires') { return ( <> ) } if (collection === 'articles') { return ( <> ) } } HandleCreate.propTypes = { session: PropTypes.object, selectedTitre: PropTypes.object, isOpen: PropTypes.bool.isRequired, setIsOpen: PropTypes.func.isRequired, setError: PropTypes.func.isRequired, setSuccess: PropTypes.func.isRequired, setIsErrorAlertOpen: PropTypes.func.isRequired, setIsSuccessAlertOpen: PropTypes.func.isRequired, collection: PropTypes.oneOf(['titres', 'articles']).isRequired, listItems: PropTypes.array }