diff --git a/artifacts/voix-du-peuple/src/pages/home.tsx b/artifacts/voix-du-peuple/src/pages/home.tsx
index 5c707ec..d80f50f 100644
--- a/artifacts/voix-du-peuple/src/pages/home.tsx
+++ b/artifacts/voix-du-peuple/src/pages/home.tsx
@@ -18,6 +18,7 @@ import {
addExtraHeader,
removeExtraHeader,
getVisitorId,
+ ApiError,
} from "@workspace/api-client-react";
import { ConsentDialog } from "@/components/consent-dialog";
import { Button } from "@/components/ui/button";
@@ -154,8 +155,14 @@ export default function Home() {
queryClient.invalidateQueries({ queryKey: getListIdeasQueryKey() });
queryClient.invalidateQueries({ queryKey: getGetIdeaStatsQueryKey() });
},
- onError: () => {
- setSubmitResult({ success: false, message: "Une erreur est survenue lors de l'envoi. Veuillez réessayer." });
+ onError: (error) => {
+ const apiMessage = error instanceof ApiError
+ ? (error.data as { message?: string } | null)?.message
+ : undefined;
+ setSubmitResult({
+ success: false,
+ message: apiMessage ?? "Une erreur est survenue lors de l'envoi. Veuillez réessayer.",
+ });
},
onSettled: () => {
removeExtraHeader("x-hcaptcha-token");
@@ -411,7 +418,11 @@ export default function Home() {
:
}
- {submitResult.success ? "Contribution enregistrée" : "Contribution non retenue"}
+ {submitResult.success
+ ? "Contribution enregistrée"
+ : submitResult.reason
+ ? "Contribution non retenue"
+ : "Envoi impossible"}
{submitResult.message}
diff --git a/lib/api-client-react/src/index.ts b/lib/api-client-react/src/index.ts
index 7f25ba3..d4ff605 100644
--- a/lib/api-client-react/src/index.ts
+++ b/lib/api-client-react/src/index.ts
@@ -7,5 +7,6 @@ export {
getVisitorId,
addExtraHeader,
removeExtraHeader,
+ ApiError,
} from "./custom-fetch";
export type { AuthTokenGetter } from "./custom-fetch";