@@ -146,15 +146,22 @@ const makeEncodedValueLens = <A, I, R, TER, TEW, TRR, TRW>(
|
|||||||
): Lens.Lens<I, never, never, never, never> => Lens.make({
|
): Lens.Lens<I, never, never, never, never> => Lens.make({
|
||||||
get get() { return self.internalEncodedValue.get },
|
get get() { return self.internalEncodedValue.get },
|
||||||
get changes() { return self.internalEncodedValue.changes },
|
get changes() { return self.internalEncodedValue.changes },
|
||||||
modify: f => self.internalEncodedValue.get.pipe(
|
modify: f => self.internalEncodedValue.modify(
|
||||||
Effect.flatMap(f),
|
encodedValue => Effect.map(
|
||||||
Effect.flatMap(([b, nextEncodedValue]) => Effect.as(
|
f(encodedValue),
|
||||||
Effect.andThen(
|
([b, nextEncodedValue]) => [
|
||||||
Lens.set(self.internalEncodedValue, nextEncodedValue),
|
[b, nextEncodedValue] as const,
|
||||||
self.synchronizeEncodedValue(nextEncodedValue),
|
nextEncodedValue,
|
||||||
),
|
] as const
|
||||||
b,
|
)
|
||||||
)),
|
).pipe(
|
||||||
|
Effect.tap(([, nextEncodedValue]) =>
|
||||||
|
self.synchronizeEncodedValue(nextEncodedValue).pipe(
|
||||||
|
Effect.forkScoped,
|
||||||
|
Effect.provide(self.context),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
Effect.map(([b]) => b),
|
||||||
),
|
),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user