@@ -21,6 +21,7 @@ extends Pipeable.Pipeable {
|
||||
readonly issues: Subscribable.Subscribable<readonly ParseResult.ArrayFormatterIssue[], never, never>
|
||||
readonly isValidating: Subscribable.Subscribable<boolean, ER, never>
|
||||
readonly canSubmit: Subscribable.Subscribable<boolean, never, never>
|
||||
readonly isSubmitting: Subscribable.Subscribable<boolean, never, never>
|
||||
}
|
||||
|
||||
export class FormImpl<in out P extends readonly PropertyKey[], in out A, in out I = A, in out ER = never, in out EW = never>
|
||||
@@ -34,6 +35,7 @@ extends Pipeable.Class() implements Form<P, A, I, ER, EW> {
|
||||
readonly issues: Subscribable.Subscribable<readonly ParseResult.ArrayFormatterIssue[], never, never>,
|
||||
readonly isValidating: Subscribable.Subscribable<boolean, never, never>,
|
||||
readonly canSubmit: Subscribable.Subscribable<boolean, never, never>,
|
||||
readonly isSubmitting: Subscribable.Subscribable<boolean, never, never>,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
@@ -80,7 +82,9 @@ extends Pipeable.Class() implements RootForm<A, I, R, MA, ME, MR, MP> {
|
||||
readonly issues: Lens.Lens<readonly ParseResult.ArrayFormatterIssue[], never, never, never, never>,
|
||||
readonly validationFiber: Lens.Lens<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, never, never, never, never>,
|
||||
readonly isValidating: Subscribable.Subscribable<boolean, never, never>,
|
||||
|
||||
readonly canSubmit: Subscribable.Subscribable<boolean, never, never>,
|
||||
readonly isSubmitting: Subscribable.Subscribable<boolean, never, never>,
|
||||
|
||||
readonly runSemaphore: Effect.Semaphore,
|
||||
) {
|
||||
@@ -176,7 +180,6 @@ export declare namespace make {
|
||||
readonly schema: Schema.Schema<A, I, R>
|
||||
readonly initialEncodedValue: NoInfer<I>
|
||||
readonly autosubmit?: boolean
|
||||
readonly debounce?: Duration.DurationInput
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,6 +206,7 @@ export const make = Effect.fnUntraced(function* <A, I = A, R = never, MA = void,
|
||||
issuesLens,
|
||||
validationFiberLens,
|
||||
Subscribable.map(validationFiberLens, Option.isSome),
|
||||
|
||||
Subscribable.map(
|
||||
Subscribable.zipLatestAll(valueLens, issuesLens, validationFiberLens, mutation.result),
|
||||
([value, issues, validationFiber, result]) => (
|
||||
@@ -212,6 +216,7 @@ export const make = Effect.fnUntraced(function* <A, I = A, R = never, MA = void,
|
||||
!(Result.isRunning(result) || Result.hasRefreshingFlag(result))
|
||||
),
|
||||
),
|
||||
Subscribable.map(mutation.result, result => Result.isRunning(result) || Result.hasRefreshingFlag(result)),
|
||||
|
||||
yield* Effect.makeSemaphore(1),
|
||||
)
|
||||
@@ -255,6 +260,7 @@ export const focusObjectField = <P extends readonly PropertyKey[], A extends obj
|
||||
Subscribable.map(form.issues, issues => filterIssuesByPath(issues, path)),
|
||||
form.isValidating,
|
||||
form.canSubmit,
|
||||
form.isSubmitting,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -272,6 +278,7 @@ export const focusArrayAt = <P extends readonly PropertyKey[], A extends readonl
|
||||
Subscribable.map(form.issues, issues => filterIssuesByPath(issues, path)),
|
||||
form.isValidating,
|
||||
form.canSubmit,
|
||||
form.isSubmitting,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
"noPropertyAccessFromIndexSignature": false,
|
||||
|
||||
// Build
|
||||
"rootDir": "./src",
|
||||
"outDir": "./dist",
|
||||
"declaration": true,
|
||||
"sourceMap": true,
|
||||
|
||||
Reference in New Issue
Block a user