solid-hook-form 1.9.0 → 1.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.d.ts +27 -27
- package/dist/main.js +22 -13
- package/dist/main.jsx +28 -19
- package/package.json +1 -1
package/dist/main.d.ts
CHANGED
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import * as solid_js from 'solid-js';
|
|
2
2
|
import { Accessor, JSXElement, ParentProps } from 'solid-js';
|
|
3
|
-
import {
|
|
3
|
+
import { FieldPath, FieldPathValue, Path, LiteralUnion, Resolver } from 'react-hook-form';
|
|
4
4
|
export { Path } from 'react-hook-form';
|
|
5
5
|
|
|
6
|
-
type Message = string;
|
|
7
|
-
type FieldError = {
|
|
8
|
-
type: LiteralUnion<keyof Rules, string>;
|
|
9
|
-
ref?: HTMLElement;
|
|
10
|
-
message?: Message;
|
|
11
|
-
};
|
|
12
|
-
type FieldErrors<F extends FormValues = FormValues> = Partial<Record<Path<F>, FieldError>>;
|
|
13
|
-
|
|
14
6
|
type ValidateResult = Message | boolean | undefined;
|
|
15
7
|
type Validate<V, F> = (value: V, formValues: F) => ValidateResult | Promise<ValidateResult>;
|
|
16
8
|
type ValidationValue = boolean | number | string | RegExp;
|
|
@@ -30,6 +22,23 @@ type Rules<F extends FormValues = FormValues, N extends FieldPath<F> = FieldPath
|
|
|
30
22
|
validate?: Validate<FieldPathValue<F, N>, F>;
|
|
31
23
|
};
|
|
32
24
|
|
|
25
|
+
type Message = string;
|
|
26
|
+
type FieldError = {
|
|
27
|
+
type: LiteralUnion<keyof Rules, string>;
|
|
28
|
+
ref?: HTMLElement;
|
|
29
|
+
message?: Message;
|
|
30
|
+
};
|
|
31
|
+
type FieldErrors<F extends FormValues = FormValues> = Partial<Record<Path<F>, FieldError>>;
|
|
32
|
+
|
|
33
|
+
type Ref = HTMLElement | null;
|
|
34
|
+
type RegisterReturn<F extends FormValues> = {
|
|
35
|
+
name: Path<F>;
|
|
36
|
+
ref(ref: Ref): void;
|
|
37
|
+
onInput(event: Event | unknown): void;
|
|
38
|
+
onChange(event: Event | unknown): void;
|
|
39
|
+
};
|
|
40
|
+
type Register<F extends FormValues> = (name: Path<F>, options?: Rules<F, Path<F>>) => RegisterReturn<F>;
|
|
41
|
+
|
|
33
42
|
type Control<F extends FormValues> = {
|
|
34
43
|
values: Accessor<F>;
|
|
35
44
|
errors: Accessor<FieldErrors<F>>;
|
|
@@ -39,37 +48,24 @@ type UseControllerArg<F extends FormValues> = {
|
|
|
39
48
|
control: Control<F>;
|
|
40
49
|
name: Path<F>;
|
|
41
50
|
rules?: Rules<F>;
|
|
42
|
-
render(arg: UseControllerReturn): JSXElement;
|
|
51
|
+
render(arg: UseControllerReturn<F>): JSXElement;
|
|
43
52
|
};
|
|
44
|
-
type UseControllerReturn = {
|
|
45
|
-
field: {
|
|
46
|
-
name: string;
|
|
53
|
+
type UseControllerReturn<F extends FormValues> = {
|
|
54
|
+
field: RegisterReturn<F> & {
|
|
47
55
|
value: Accessor<any>;
|
|
48
|
-
onInput(event: Event): void;
|
|
49
|
-
onChange(event: Event): void;
|
|
50
|
-
ref(element: HTMLElement): void;
|
|
51
56
|
};
|
|
52
57
|
fieldState: {
|
|
53
58
|
error: Accessor<FieldError | undefined>;
|
|
54
59
|
};
|
|
55
60
|
};
|
|
56
|
-
type UseController = <F extends FormValues>(arg: UseControllerArg<F>) => UseControllerReturn;
|
|
57
61
|
type ControllerProps<F extends FormValues> = {
|
|
58
62
|
control: Control<F>;
|
|
59
63
|
name: Path<F>;
|
|
60
64
|
rules?: Rules<F>;
|
|
61
|
-
render(arg: UseControllerReturn): JSXElement;
|
|
65
|
+
render(arg: UseControllerReturn<F>): JSXElement;
|
|
62
66
|
};
|
|
63
67
|
|
|
64
68
|
type FormValues = Record<string, any>;
|
|
65
|
-
type Ref = HTMLElement | null;
|
|
66
|
-
type RegisterReturn<F extends FormValues> = {
|
|
67
|
-
name: Path<F>;
|
|
68
|
-
ref(ref: Ref): void;
|
|
69
|
-
onInput(event: Event): void;
|
|
70
|
-
onChange(event: Event): void;
|
|
71
|
-
};
|
|
72
|
-
type Register<T extends FormValues> = (name: Path<T>, options?: Rules<T, Path<T>>) => RegisterReturn<T>;
|
|
73
69
|
type GetValues<F extends FormValues> = {
|
|
74
70
|
(): F;
|
|
75
71
|
<N extends FieldPath<F>>(name: N): FieldPathValue<F, N>;
|
|
@@ -85,6 +81,10 @@ type CreateFormArg<F extends FormValues> = {
|
|
|
85
81
|
};
|
|
86
82
|
type CreateFormReturn<F extends FormValues = FormValues> = {
|
|
87
83
|
control: Control<F>;
|
|
84
|
+
formState: {
|
|
85
|
+
errors: Accessor<FieldErrors<F>>;
|
|
86
|
+
isValid: Accessor<boolean>;
|
|
87
|
+
};
|
|
88
88
|
values: Accessor<F>;
|
|
89
89
|
errors: Accessor<FieldErrors<F>>;
|
|
90
90
|
isValid: Accessor<boolean>;
|
|
@@ -99,7 +99,7 @@ type CreateForm = <F extends FormValues>(arg?: CreateFormArg<F>) => CreateFormRe
|
|
|
99
99
|
|
|
100
100
|
declare const createForm: CreateForm;
|
|
101
101
|
|
|
102
|
-
declare const useController:
|
|
102
|
+
declare const useController: <F extends FormValues>(arg: UseControllerArg<F>) => UseControllerReturn<F>;
|
|
103
103
|
|
|
104
104
|
declare const Controller: <F extends FormValues>(props: ControllerProps<F>) => solid_js.JSX.Element;
|
|
105
105
|
|
package/dist/main.js
CHANGED
|
@@ -5,6 +5,10 @@ import { memo, createComponent } from 'solid-js/web';
|
|
|
5
5
|
|
|
6
6
|
// src/logic/get_value.ts
|
|
7
7
|
var getFieldValue = (event) => {
|
|
8
|
+
const isEvent = event instanceof Event;
|
|
9
|
+
if (!isEvent) {
|
|
10
|
+
return event;
|
|
11
|
+
}
|
|
8
12
|
const field = event.target;
|
|
9
13
|
if (field instanceof HTMLSelectElement) {
|
|
10
14
|
return field.value;
|
|
@@ -361,6 +365,10 @@ var createForm = (arg = { defaultValues: {} }) => {
|
|
|
361
365
|
};
|
|
362
366
|
return {
|
|
363
367
|
control,
|
|
368
|
+
formState: {
|
|
369
|
+
errors,
|
|
370
|
+
isValid
|
|
371
|
+
},
|
|
364
372
|
values,
|
|
365
373
|
errors,
|
|
366
374
|
isValid,
|
|
@@ -372,13 +380,24 @@ var createForm = (arg = { defaultValues: {} }) => {
|
|
|
372
380
|
reset
|
|
373
381
|
};
|
|
374
382
|
};
|
|
383
|
+
var FormContext = createContext();
|
|
384
|
+
|
|
385
|
+
// src/use_form_context.ts
|
|
386
|
+
var useFormContext = () => {
|
|
387
|
+
const form = useContext(FormContext);
|
|
388
|
+
return form;
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
// src/use_controller.ts
|
|
375
392
|
var useController = (arg) => {
|
|
376
|
-
const
|
|
393
|
+
const form = useFormContext();
|
|
394
|
+
const control = form?.control || arg.control;
|
|
395
|
+
const fieldProps = control.register(arg.name, arg.rules);
|
|
377
396
|
const value = createMemo(() => {
|
|
378
|
-
return get(
|
|
397
|
+
return get(control.values(), arg.name);
|
|
379
398
|
});
|
|
380
399
|
const error = createMemo(() => {
|
|
381
|
-
return
|
|
400
|
+
return control.errors()[arg.name];
|
|
382
401
|
});
|
|
383
402
|
return {
|
|
384
403
|
field: {
|
|
@@ -394,16 +413,6 @@ var Controller = (props) => {
|
|
|
394
413
|
const controller = useController(props);
|
|
395
414
|
return memo(() => props.render(controller));
|
|
396
415
|
};
|
|
397
|
-
var FormContext = createContext();
|
|
398
|
-
|
|
399
|
-
// src/use_form_context.ts
|
|
400
|
-
var useFormContext = () => {
|
|
401
|
-
const form = useContext(FormContext);
|
|
402
|
-
if (!form) {
|
|
403
|
-
throw new Error("useFormContext: cannot find a FormProvider");
|
|
404
|
-
}
|
|
405
|
-
return form;
|
|
406
|
-
};
|
|
407
416
|
var FormProvider = (props) => {
|
|
408
417
|
return createComponent(FormContext.Provider, {
|
|
409
418
|
get value() {
|
package/dist/main.jsx
CHANGED
|
@@ -3,6 +3,10 @@ import { createMemo, createSignal as createSignal2 } from "solid-js";
|
|
|
3
3
|
|
|
4
4
|
// src/logic/get_value.ts
|
|
5
5
|
var getFieldValue = (event) => {
|
|
6
|
+
const isEvent = event instanceof Event;
|
|
7
|
+
if (!isEvent) {
|
|
8
|
+
return event;
|
|
9
|
+
}
|
|
6
10
|
const field = event.target;
|
|
7
11
|
if (field instanceof HTMLSelectElement) {
|
|
8
12
|
return field.value;
|
|
@@ -362,6 +366,10 @@ var createForm = (arg = { defaultValues: {} }) => {
|
|
|
362
366
|
};
|
|
363
367
|
return {
|
|
364
368
|
control,
|
|
369
|
+
formState: {
|
|
370
|
+
errors,
|
|
371
|
+
isValid
|
|
372
|
+
},
|
|
365
373
|
values,
|
|
366
374
|
errors,
|
|
367
375
|
isValid,
|
|
@@ -376,13 +384,30 @@ var createForm = (arg = { defaultValues: {} }) => {
|
|
|
376
384
|
|
|
377
385
|
// src/use_controller.ts
|
|
378
386
|
import { createMemo as createMemo2 } from "solid-js";
|
|
387
|
+
|
|
388
|
+
// src/use_form_context.ts
|
|
389
|
+
import { useContext } from "solid-js";
|
|
390
|
+
|
|
391
|
+
// src/form_context.ts
|
|
392
|
+
import { createContext } from "solid-js";
|
|
393
|
+
var FormContext = createContext();
|
|
394
|
+
|
|
395
|
+
// src/use_form_context.ts
|
|
396
|
+
var useFormContext = () => {
|
|
397
|
+
const form = useContext(FormContext);
|
|
398
|
+
return form;
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
// src/use_controller.ts
|
|
379
402
|
var useController = (arg) => {
|
|
380
|
-
const
|
|
403
|
+
const form = useFormContext();
|
|
404
|
+
const control = form?.control || arg.control;
|
|
405
|
+
const fieldProps = control.register(arg.name, arg.rules);
|
|
381
406
|
const value = createMemo2(() => {
|
|
382
|
-
return get(
|
|
407
|
+
return get(control.values(), arg.name);
|
|
383
408
|
});
|
|
384
409
|
const error = createMemo2(() => {
|
|
385
|
-
return
|
|
410
|
+
return control.errors()[arg.name];
|
|
386
411
|
});
|
|
387
412
|
return {
|
|
388
413
|
field: {
|
|
@@ -401,22 +426,6 @@ var Controller = (props) => {
|
|
|
401
426
|
return <>{props.render(controller)}</>;
|
|
402
427
|
};
|
|
403
428
|
|
|
404
|
-
// src/use_form_context.ts
|
|
405
|
-
import { useContext } from "solid-js";
|
|
406
|
-
|
|
407
|
-
// src/form_context.ts
|
|
408
|
-
import { createContext } from "solid-js";
|
|
409
|
-
var FormContext = createContext();
|
|
410
|
-
|
|
411
|
-
// src/use_form_context.ts
|
|
412
|
-
var useFormContext = () => {
|
|
413
|
-
const form = useContext(FormContext);
|
|
414
|
-
if (!form) {
|
|
415
|
-
throw new Error("useFormContext: cannot find a FormProvider");
|
|
416
|
-
}
|
|
417
|
-
return form;
|
|
418
|
-
};
|
|
419
|
-
|
|
420
429
|
// src/form_provider.tsx
|
|
421
430
|
var FormProvider = (props) => {
|
|
422
431
|
return <FormContext.Provider value={props.form}>{props.children}</FormContext.Provider>;
|