diff --git a/packages/effect-fc/src/Form.ts b/packages/effect-fc/src/Form.ts index b8206b6..c19f782 100644 --- a/packages/effect-fc/src/Form.ts +++ b/packages/effect-fc/src/Form.ts @@ -324,6 +324,32 @@ export const focusTupleAt: { ) }) +export const focusChunkAt: { +
( + self: Form
, Chunk.Chunk, ER, EW>,
+ index: number,
+ ): Form (
+ index: number,
+ ): (self: Form , Chunk.Chunk, ER, EW>) => Form (
+ self: Form , Chunk.Chunk, ER, EW>,
+ index: number,
+): Form , Chunk.Chunk, ER, EW>
+ const path = [...form.path, index] as const
+
+ return new FormImpl(
+ path,
+ Subscribable.mapOptionEffect(form.value, Chunk.get(index)),
+ Lens.focusChunkAt(form.encodedValue, index),
+ Subscribable.map(form.issues, issues => filterIssuesByPath(issues, path)),
+ form.isValidating,
+ form.canSubmit,
+ form.isSubmitting,
+ )
+})
+
export namespace useInput {
export interface Options {