diff --git a/packages/effect-fc/src/SynchronizedForm.ts b/packages/effect-fc/src/SynchronizedForm.ts index 8582c21..5fa5824 100644 --- a/packages/effect-fc/src/SynchronizedForm.ts +++ b/packages/effect-fc/src/SynchronizedForm.ts @@ -155,13 +155,15 @@ export class SynchronizedFormImpl< Stream.drop(this.target.changes, 1), targetValue => Schema.encode(this.schema, { errors: "all" })(targetValue).pipe( Effect.flatMap(encodedValue => Effect.whenEffect( - Lens.set(this.internalEncodedValue, encodedValue), + Effect.andThen( + Lens.set(this.issues, Array.empty()), + Lens.set(this.internalEncodedValue, encodedValue), + ), Effect.map( Lens.get(this.internalEncodedValue), currentEncodedValue => !Equal.equals(encodedValue, currentEncodedValue), ), )), - Effect.andThen(Lens.set(this.issues, Array.empty())), Effect.ignore, ), ),