@@ -146,15 +146,22 @@ const makeEncodedValueLens = <A, I, R, TER, TEW, TRR, TRW>(
|
||||
): Lens.Lens<I, never, never, never, never> => Lens.make({
|
||||
get get() { return self.internalEncodedValue.get },
|
||||
get changes() { return self.internalEncodedValue.changes },
|
||||
modify: f => self.internalEncodedValue.get.pipe(
|
||||
Effect.flatMap(f),
|
||||
Effect.flatMap(([b, nextEncodedValue]) => Effect.as(
|
||||
Effect.andThen(
|
||||
Lens.set(self.internalEncodedValue, nextEncodedValue),
|
||||
self.synchronizeEncodedValue(nextEncodedValue),
|
||||
),
|
||||
b,
|
||||
)),
|
||||
modify: f => self.internalEncodedValue.modify(
|
||||
encodedValue => Effect.map(
|
||||
f(encodedValue),
|
||||
([b, nextEncodedValue]) => [
|
||||
[b, nextEncodedValue] as const,
|
||||
nextEncodedValue,
|
||||
] as const
|
||||
)
|
||||
).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