diff --git a/packages/effect-fc/src/Form.ts b/packages/effect-fc/src/Form.ts index 564d8f4..b8206b6 100644 --- a/packages/effect-fc/src/Form.ts +++ b/packages/effect-fc/src/Form.ts @@ -298,6 +298,32 @@ export const focusArrayAt: { ) }) +export const focusTupleAt: { +
( + self: Form
,
+ index: K,
+ ): Form (
+ index: K,
+ ): (self: Form ) => Form (
+ self: Form ,
+ index: K,
+): Form
+ const path = [...form.path, index] as const
+
+ return new FormImpl(
+ path,
+ Subscribable.mapOption(form.value, Array.unsafeGet(index)),
+ Lens.focusTupleAt(form.encodedValue, index),
+ Subscribable.map(form.issues, issues => filterIssuesByPath(issues, path)),
+ form.isValidating,
+ form.canSubmit,
+ form.isSubmitting,
+ )
+})
+
export namespace useInput {
export interface Options {