refactor: Add CreateForm to write comments

This commit is contained in:
2024-06-21 12:39:37 +04:00
parent def7dd60db
commit 6870f1e459
5 changed files with 180 additions and 112 deletions
+41 -1
View File
@@ -1,4 +1,7 @@
import {createDirectus, rest, authentication} from '@directus/sdk'
import {
createDirectus, rest, authentication, withToken, createItem
} from '@directus/sdk'
import {hasRestrictedChar} from './format.js'
const apiUrl = process.env.DIRECTUS_API_URL || process.env.NEXT_PUBLIC_DIRECTUS_API_URL
@@ -6,3 +9,40 @@ export const directusClient = createDirectus(apiUrl)
.with(authentication('cookie', {credentials: 'include', autoRefresh: true}))
.with(rest())
export async function handleSubmit({
accessToken,
content,
collection,
requestObject,
setError,
setSuccess,
setIsErrorAlertOpen,
setIsSuccessAlertOpen,
countdownRef,
}) {
try {
if (hasRestrictedChar(content)) {
setError('Le texte ne doit pas contenir certains caractères spéciaux : <, >, ", .')
setIsErrorAlertOpen(true)
return
}
await directusClient.request(
withToken(
accessToken,
createItem(collection, requestObject)
)
)
setSuccess('Envoyé avec succès. En attente de validation.')
setIsSuccessAlertOpen(true)
} catch (error) {
if (error?.errors[0]?.message === 'Token expired.') {
countdownRef.current.startCountdown()
} else {
console.log(error?.errors[0]?.message)
setError(error?.errors[0]?.message)
setIsErrorAlertOpen(true)
}
}
}