94 lines
2.1 KiB
JavaScript
94 lines
2.1 KiB
JavaScript
'use client'
|
||
|
||
import PropTypes from 'prop-types'
|
||
import {useRef} from 'react'
|
||
import FormHandler from '../form-handler.js'
|
||
import {formatFormContent} from '@/lib/format.js'
|
||
import {createVersion} from '@/lib/directus.js'
|
||
|
||
export default function HandleEdit({
|
||
id,
|
||
session,
|
||
isOpen,
|
||
setIsOpen,
|
||
collection,
|
||
contenu,
|
||
setError,
|
||
setSuccess,
|
||
setIsSuccessAlertOpen,
|
||
setIsErrorAlertOpen
|
||
}) {
|
||
const countdownRef = useRef()
|
||
|
||
const handleFormSubmit = async e => {
|
||
e.preventDefault()
|
||
console.log('e', e)
|
||
|
||
const formattedContent = formatFormContent(e.currentTarget)
|
||
|
||
const {accessToken, userId} = session.user
|
||
|
||
await createVersion({
|
||
accessToken,
|
||
userId,
|
||
collection,
|
||
id,
|
||
formattedContent,
|
||
setIsErrorAlertOpen,
|
||
setSuccess,
|
||
setIsSuccessAlertOpen,
|
||
setError,
|
||
countdownRef
|
||
})
|
||
}
|
||
|
||
if (collection === 'titres') {
|
||
return (
|
||
<FormHandler
|
||
handleFormSubmit={handleFormSubmit}
|
||
session={session}
|
||
isOpen={isOpen}
|
||
setIsOpen={setIsOpen}
|
||
collection={collection}
|
||
setError={setError}
|
||
setSuccess={setSuccess}
|
||
contenu={contenu}
|
||
title='Titre'
|
||
dialogText='Modifiez le titre'
|
||
label='titre'
|
||
/>
|
||
)
|
||
}
|
||
|
||
if (collection === 'articles') {
|
||
return (
|
||
<FormHandler
|
||
handleFormSubmit={handleFormSubmit}
|
||
session={session}
|
||
isOpen={isOpen}
|
||
setIsOpen={setIsOpen}
|
||
collection={collection}
|
||
setError={setError}
|
||
setSuccess={setSuccess}
|
||
contenu={contenu}
|
||
title='Article'
|
||
dialogText='Modifiez l’article'
|
||
label='titre'
|
||
/>
|
||
)
|
||
}
|
||
}
|
||
|
||
HandleEdit.propTypes = {
|
||
id: PropTypes.string.isRequired,
|
||
session: PropTypes.object.isRequired,
|
||
isOpen: PropTypes.bool.isRequired,
|
||
setIsOpen: PropTypes.func.isRequired,
|
||
setSuccess: PropTypes.func.isRequired,
|
||
setIsErrorAlertOpen: PropTypes.func.isRequired,
|
||
setIsSuccessAlertOpen: PropTypes.func.isRequired,
|
||
setError: PropTypes.func.isRequired,
|
||
contenu: PropTypes.string,
|
||
collection: PropTypes.oneOf(['titres', 'articles']).isRequired
|
||
}
|