2024-07-28 17:35:44 +02:00
|
|
|
|
'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'
|
2025-07-23 08:45:15 +04:00
|
|
|
|
import SessionExpired from '@/components/session/session-expired.js'
|
2024-07-28 17:35:44 +02:00
|
|
|
|
|
|
|
|
|
|
export default function HandleEdit({
|
|
|
|
|
|
id,
|
|
|
|
|
|
session,
|
|
|
|
|
|
isOpen,
|
|
|
|
|
|
setIsOpen,
|
|
|
|
|
|
collection,
|
|
|
|
|
|
contenu,
|
|
|
|
|
|
setError,
|
|
|
|
|
|
setSuccess,
|
|
|
|
|
|
setIsSuccessAlertOpen,
|
|
|
|
|
|
setIsErrorAlertOpen
|
|
|
|
|
|
}) {
|
|
|
|
|
|
const countdownRef = useRef()
|
|
|
|
|
|
|
|
|
|
|
|
const handleFormSubmit = async e => {
|
|
|
|
|
|
e.preventDefault()
|
|
|
|
|
|
|
|
|
|
|
|
const formattedContent = formatFormContent(e.currentTarget)
|
|
|
|
|
|
|
|
|
|
|
|
const {accessToken, userId} = session.user
|
|
|
|
|
|
|
|
|
|
|
|
await createVersion({
|
|
|
|
|
|
accessToken,
|
|
|
|
|
|
userId,
|
|
|
|
|
|
collection,
|
|
|
|
|
|
id,
|
2024-09-01 14:43:19 +04:00
|
|
|
|
content: formattedContent,
|
2024-07-28 17:35:44 +02:00
|
|
|
|
setIsErrorAlertOpen,
|
|
|
|
|
|
setSuccess,
|
|
|
|
|
|
setIsSuccessAlertOpen,
|
|
|
|
|
|
setError,
|
|
|
|
|
|
countdownRef
|
|
|
|
|
|
})
|
2024-09-01 14:43:19 +04:00
|
|
|
|
|
|
|
|
|
|
setIsOpen(false)
|
2024-07-28 17:35:44 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (collection === 'titres') {
|
|
|
|
|
|
return (
|
2024-09-01 18:35:39 +04:00
|
|
|
|
<>
|
|
|
|
|
|
<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'
|
|
|
|
|
|
/>
|
2025-07-23 08:45:15 +04:00
|
|
|
|
<SessionExpired ref={countdownRef} setError={setError} setIsErrorAlertOpen={setIsErrorAlertOpen} />
|
2024-09-01 18:35:39 +04:00
|
|
|
|
</>
|
2024-07-28 17:35:44 +02:00
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (collection === 'articles') {
|
|
|
|
|
|
return (
|
2024-09-01 18:35:39 +04:00
|
|
|
|
<>
|
|
|
|
|
|
<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'
|
|
|
|
|
|
/>
|
2025-07-23 08:45:15 +04:00
|
|
|
|
<SessionExpired ref={countdownRef} setError={setError} setIsErrorAlertOpen={setIsErrorAlertOpen} />
|
2024-09-01 18:35:39 +04:00
|
|
|
|
</>
|
2024-07-28 17:35:44 +02:00
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
}
|