This commit is contained in:
@@ -324,6 +324,32 @@ export const focusTupleAt: {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
export const focusChunkAt: {
|
||||||
|
<P extends readonly PropertyKey[], A, I, ER, EW>(
|
||||||
|
self: Form<P, Chunk.Chunk<A>, Chunk.Chunk<I>, ER, EW>,
|
||||||
|
index: number,
|
||||||
|
): Form<readonly [...P, number], A, I, ER | Cause.NoSuchElementException, EW>
|
||||||
|
<P extends readonly PropertyKey[], A, I, ER, EW>(
|
||||||
|
index: number,
|
||||||
|
): (self: Form<P, Chunk.Chunk<A>, Chunk.Chunk<I>, ER, EW>) => Form<readonly [...P, number], A, I, ER | Cause.NoSuchElementException, EW>
|
||||||
|
} = Function.dual(2, <P extends readonly PropertyKey[], A, I, ER, EW>(
|
||||||
|
self: Form<P, Chunk.Chunk<A>, Chunk.Chunk<I>, ER, EW>,
|
||||||
|
index: number,
|
||||||
|
): Form<readonly [...P, number], A, I, ER | Cause.NoSuchElementException, EW> => {
|
||||||
|
const form = self as FormImpl<P, Chunk.Chunk<A>, Chunk.Chunk<I>, 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 namespace useInput {
|
||||||
export interface Options {
|
export interface Options {
|
||||||
|
|||||||
Reference in New Issue
Block a user