diff --git a/site/source/components/Feedback/FeedbackForm.tsx b/site/source/components/Feedback/FeedbackForm.tsx
index a140959f8..314fb980e 100644
--- a/site/source/components/Feedback/FeedbackForm.tsx
+++ b/site/source/components/Feedback/FeedbackForm.tsx
@@ -4,12 +4,13 @@ import { useLocation } from 'react-router-dom'
import styled from 'styled-components'
import { ScrollToElement } from '@/components/utils/Scroll'
-import { Checkbox, TextAreaField, TextField } from '@/design-system'
+import { Checkbox, Message, TextAreaField, TextField } from '@/design-system'
import { Button } from '@/design-system/buttons'
import { Emoji } from '@/design-system/emoji'
import { Spacing } from '@/design-system/layout'
import { Strong } from '@/design-system/typography'
-import { H1 } from '@/design-system/typography/heading'
+import { H1, H4 } from '@/design-system/typography/heading'
+import { Link } from '@/design-system/typography/link'
import { Body } from '@/design-system/typography/paragraphs'
import { useUrl } from '../ShareSimulationBanner'
@@ -30,15 +31,19 @@ const FeedbackThankYouContent = () => {
- Merci pour votre message !
+
+ Merci pour votre message !
+
- Notre équipe prend en charge votre retour.
+
+ Notre équipe prend en charge votre retour.
+
-
+
Nous avons à cœur d'améliorer en continu notre site, vos remarques
nous sont donc très précieuses.
@@ -48,6 +53,40 @@ const FeedbackThankYouContent = () => {
)
}
+const FeedbackRequestErrorContent = ({
+ statusCode,
+}: {
+ statusCode: number
+}) => {
+ const { t } = useTranslation()
+
+ return (
+ <>
+
+
+ Une erreur est survenue pendant l’envoi du message
+
+
+
+ Le message n’a pas pu être envoyé (status code {{ statusCode }}).
+ Veuillez réessayer ou nous contacter par mail à l’adresse{' '}
+
+ contact@mon-entreprise.beta.gouv.fr
+
+ .
+
+
+
+ >
+ )
+}
+
export default function FeedbackForm({
infoSlot,
description,
@@ -68,7 +107,9 @@ export default function FeedbackForm({
([key]) => key !== 'utm_source'
)
const [share, setShare] = useState(false)
- const [isSubmittedSuccessfully, setIsSubmittedSuccessfully] = useState(false)
+ const [requestStatusCode, setRequestStatusCode] = useState(
+ null
+ )
const [isLoading, setIsLoading] = useState(false)
const [submitError, setSubmitError] = useState(
undefined
@@ -88,7 +129,7 @@ export default function FeedbackForm({
const subjectTags = tags?.length ? ` [${tags?.join(',')}]` : ''
try {
- await fetch(`/server/send-crisp-message`, {
+ const result = await fetch(`/server/send-crisp-message`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
@@ -102,7 +143,8 @@ export default function FeedbackForm({
email,
}),
})
- setIsSubmittedSuccessfully(true)
+ setIsLoading(false)
+ setRequestStatusCode(result.status)
} catch (e) {
// Show error message
// eslint-disable-next-line no-console
@@ -119,17 +161,18 @@ export default function FeedbackForm({
const resetSubmitErrorField = (field: keyof SubmitError) =>
submitError?.[field]
? () =>
- setSubmitError((previousValue) => ({
- ...previousValue,
- [field]: '',
- }))
+ setSubmitError((previousValue) => ({ ...previousValue, [field]: '' }))
: undefined
return (
- {isSubmittedSuccessfully && }
- {!isSubmittedSuccessfully && (
+ {requestStatusCode === 200 ? (
+
+ ) : (
<>
+ {requestStatusCode !== null && (
+
+ )}