Files
konstitisyon.nu/components/konstitisyon/edit/handle-edit.js
T

95 lines
2.1 KiB
JavaScript
Raw Normal View History

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'
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 (
<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 larticle'
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
}