From 18ef73d4c0b47433f170b59dd0459ee03a878ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Sun, 7 Jul 2024 12:09:10 +0200 Subject: [PATCH] refactor: Improve Create components --- components/konstitisyon/create/create-form.js | 84 ++----------------- .../konstitisyon/create/handle-create.js | 72 ++++++++++++++++ 2 files changed, 79 insertions(+), 77 deletions(-) diff --git a/components/konstitisyon/create/create-form.js b/components/konstitisyon/create/create-form.js index ba5ba88..04cebd4 100644 --- a/components/konstitisyon/create/create-form.js +++ b/components/konstitisyon/create/create-form.js @@ -1,6 +1,5 @@ 'use client' -import {useRef, useState, useEffect} from 'react' import PropTypes from 'prop-types' import Button from '@mui/material/Button' import TextField from '@mui/material/TextField' @@ -11,92 +10,25 @@ import DialogContentText from '@mui/material/DialogContentText' import DialogTitle from '@mui/material/DialogTitle' import LogoutCountdown from '../../session/logout-countdown.js' import ListItems from './list-items.js' -import {handleSubmit} from '@/lib/directus.js' -import {formatFormContent} from '@/lib/format.js' export default function CreateForm({ - session, - selectedTitre, isOpen, setIsOpen, setError, - setSuccess, setIsErrorAlertOpen, - setIsSuccessAlertOpen, dialogText, - collection, title, label, hasMultiline = true, - listItems + listItems, + handleFormSubmit, + countdownRef, + setSelectValue }) { - const countdownRef = useRef() - const [selectValue, setSelectValue] = useState('') - - useEffect(() => { - if (listItems && listItems.length > 0) { - setSelectValue(listItems[0].id) - } - }, [listItems]) - const handleClose = () => { setIsOpen(false) } - const handleFormSubmit = async e => { - e.preventDefault() - let requestObject - - const formattedContent = formatFormContent(e.currentTarget) - - switch (collection) { - case 'commentaires': { - requestObject = { - contenu: formattedContent, - titre: selectedTitre, - 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, - }) - - handleClose() - } - return ( <> { + 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, + 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 (