-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathtypes.ts
22 lines (21 loc) · 1.07 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { type ValidationConfig, type Config, type NamedInputEvent, type Validator } from 'laravel-precognition'
export interface Form<Data extends Record<string, unknown>> {
processing: boolean;
validating: boolean;
touched(name: keyof Data): boolean;
touch(name: string | NamedInputEvent | Array<string>): Data & Form<Data>;
data(): Data,
setData(data: Record<string, unknown>): Data & Form<Data>;
errors: Record<keyof Data, string>;
hasErrors: boolean;
valid(name: keyof Data): boolean;
invalid(name: keyof Data): boolean;
validate(name?: (keyof Data | NamedInputEvent) | ValidationConfig, config?: ValidationConfig): Data & Form<Data>;
setErrors(errors: Partial<Record<keyof Data, string | string[]>>): Data & Form<Data>;
forgetError(string: keyof Data | NamedInputEvent): Data & Form<Data>;
setValidationTimeout(duration: number): Data & Form<Data>;
submit(config?: Config): Promise<unknown>;
reset(...keys: (keyof Partial<Data>)[]): Data & Form<Data>;
validateFiles(): Data & Form<Data>;
validator(): Validator;
}