From a1ec5c47811141139ca40fc4df57da0257d3ba5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Thu, 16 Oct 2025 02:00:10 +0200 Subject: [PATCH] Handle ParseError on form submit --- packages/effect-fc/src/Form.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/effect-fc/src/Form.ts b/packages/effect-fc/src/Form.ts index 26a1e6b..8d032ba 100644 --- a/packages/effect-fc/src/Form.ts +++ b/packages/effect-fc/src/Form.ts @@ -156,13 +156,14 @@ export const submit = ( Effect.andThen(identity), Effect.tap(Ref.set(self.submitStateRef, AsyncData.loading())), Effect.andThen(flow( - self.submit, + self.submit as (value: NoInfer) => Effect.Effect, + Effect.tapErrorTag("ParseError", e => Ref.set(self.errorRef, Option.some(e as ParseResult.ParseError))), Effect.exit, Effect.map(Exit.match({ onSuccess: a => AsyncData.success(a), - onFailure: e => AsyncData.failure(e), + onFailure: e => AsyncData.failure(e as Cause.Cause), })), - Effect.tap(v => Ref.set(self.submitStateRef, v)) + Effect.tap(v => Ref.set(self.submitStateRef, v)), )), ),