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)), )), ),