solid-hook-form 1.8.0 → 1.9.1
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/README.md +4 -4
- package/dist/main.d.ts +30 -14
- package/dist/main.js +30 -27
- package/dist/main.jsx +32 -23
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,19 +24,19 @@ npm install solid-hook-form
|
|
|
24
24
|
### Quick start
|
|
25
25
|
|
|
26
26
|
```jsx
|
|
27
|
-
import {
|
|
27
|
+
import { createForm } from "solid-hook-form";
|
|
28
28
|
|
|
29
29
|
const ExampleForm = () => {
|
|
30
|
-
const { errors, register,
|
|
30
|
+
const { errors, register, handleSubmit } = createForm({
|
|
31
31
|
defaultValues: {
|
|
32
32
|
name: "",
|
|
33
33
|
},
|
|
34
34
|
});
|
|
35
35
|
|
|
36
|
-
const
|
|
36
|
+
const onSubmit = (values) => console.log(values);
|
|
37
37
|
|
|
38
38
|
return (
|
|
39
|
-
<form onSubmit={onSubmit
|
|
39
|
+
<form onSubmit={handleSubmit(onSubmit)}>
|
|
40
40
|
<input {...register("name", { minLength: 2, pattern: /[A-Za-z]/ })} />;
|
|
41
41
|
<button type="submit">Submit</button>
|
|
42
42
|
</form>
|
package/dist/main.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Path, LiteralUnion, FieldPath, FieldPathValue, Resolver } from 'react-hook-form';
|
|
2
1
|
import * as solid_js from 'solid-js';
|
|
3
2
|
import { Accessor, JSXElement, ParentProps } from 'solid-js';
|
|
3
|
+
import { Path, LiteralUnion, FieldPath, FieldPathValue, Resolver } from 'react-hook-form';
|
|
4
|
+
export { Path } from 'react-hook-form';
|
|
4
5
|
|
|
5
6
|
type Message = string;
|
|
6
7
|
type FieldError = {
|
|
@@ -34,6 +35,12 @@ type Control<F extends FormValues> = {
|
|
|
34
35
|
errors: Accessor<FieldErrors<F>>;
|
|
35
36
|
register: Register<F>;
|
|
36
37
|
};
|
|
38
|
+
type UseControllerArg<F extends FormValues> = {
|
|
39
|
+
control: Control<F>;
|
|
40
|
+
name: Path<F>;
|
|
41
|
+
rules?: Rules<F>;
|
|
42
|
+
render(arg: UseControllerReturn): JSXElement;
|
|
43
|
+
};
|
|
37
44
|
type UseControllerReturn = {
|
|
38
45
|
field: {
|
|
39
46
|
name: string;
|
|
@@ -46,6 +53,7 @@ type UseControllerReturn = {
|
|
|
46
53
|
error: Accessor<FieldError | undefined>;
|
|
47
54
|
};
|
|
48
55
|
};
|
|
56
|
+
type UseController = <F extends FormValues>(arg: UseControllerArg<F>) => UseControllerReturn;
|
|
49
57
|
type ControllerProps<F extends FormValues> = {
|
|
50
58
|
control: Control<F>;
|
|
51
59
|
name: Path<F>;
|
|
@@ -70,8 +78,17 @@ type SetValue<F extends FormValues> = (name: Path<F>, value: FieldPathValue<F, P
|
|
|
70
78
|
type SubmitCallback<F extends FormValues> = (values: F) => void;
|
|
71
79
|
type OnSubmit<F extends FormValues> = (submit: SubmitCallback<F>) => (event: SubmitEvent) => void;
|
|
72
80
|
type Reset<F extends FormValues> = (newDefaultValues?: Partial<F>) => void;
|
|
73
|
-
type
|
|
81
|
+
type CreateFormArg<F extends FormValues> = {
|
|
82
|
+
defaultValues: F;
|
|
83
|
+
mode?: "onChange" | "onSubmit";
|
|
84
|
+
resolver?: Resolver<F>;
|
|
85
|
+
};
|
|
86
|
+
type CreateFormReturn<F extends FormValues = FormValues> = {
|
|
74
87
|
control: Control<F>;
|
|
88
|
+
formState: {
|
|
89
|
+
errors: Accessor<FieldErrors<F>>;
|
|
90
|
+
isValid: Accessor<boolean>;
|
|
91
|
+
};
|
|
75
92
|
values: Accessor<F>;
|
|
76
93
|
errors: Accessor<FieldErrors<F>>;
|
|
77
94
|
isValid: Accessor<boolean>;
|
|
@@ -79,27 +96,26 @@ type UseFormReturn<F extends FormValues = FormValues> = {
|
|
|
79
96
|
getValues: GetValues<F>;
|
|
80
97
|
setValue: SetValue<F>;
|
|
81
98
|
onSubmit: OnSubmit<F>;
|
|
99
|
+
handleSubmit: OnSubmit<F>;
|
|
82
100
|
reset: Reset<F>;
|
|
83
101
|
};
|
|
102
|
+
type CreateForm = <F extends FormValues>(arg?: CreateFormArg<F>) => CreateFormReturn<F>;
|
|
84
103
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
104
|
+
declare const createForm: CreateForm;
|
|
105
|
+
|
|
106
|
+
declare const useController: UseController;
|
|
107
|
+
|
|
108
|
+
declare const Controller: <F extends FormValues>(props: ControllerProps<F>) => solid_js.JSX.Element;
|
|
109
|
+
|
|
110
|
+
declare const useFormContext: <T extends FormValues>() => CreateFormReturn<T>;
|
|
91
111
|
|
|
92
112
|
type FormProviderProps<T extends FormValues> = ParentProps & {
|
|
93
|
-
form:
|
|
113
|
+
form: CreateFormReturn<T>;
|
|
94
114
|
};
|
|
95
115
|
declare const FormProvider: <T extends FormValues>(props: FormProviderProps<T>) => solid_js.JSX.Element;
|
|
96
116
|
|
|
97
|
-
declare const useFormContext: <T extends FormValues>() => UseFormReturn<T>;
|
|
98
|
-
|
|
99
|
-
declare const Controller: <F extends FormValues>(props: ControllerProps<F>) => solid_js.JSX.Element;
|
|
100
|
-
|
|
101
117
|
declare const get: (object: any, path: string, defaultValue?: unknown) => any;
|
|
102
118
|
|
|
103
119
|
declare const set: (object: FormValues, path: string, value: unknown) => void;
|
|
104
120
|
|
|
105
|
-
export { Controller, type FieldError, type FieldErrors, FormProvider, get, set, useForm, useFormContext };
|
|
121
|
+
export { type Control, Controller, type CreateFormArg, type CreateFormReturn, type FieldError, type FieldErrors, FormProvider, type FormValues, type Rules, type UseControllerArg, type UseControllerReturn, createForm, get, set, useController, createForm as useForm, useFormContext };
|
package/dist/main.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createContext, createSignal, createMemo, useContext } from 'solid-js';
|
|
2
|
-
import {
|
|
2
|
+
import { memo, createComponent } from 'solid-js/web';
|
|
3
3
|
|
|
4
|
-
// src/
|
|
4
|
+
// src/create_form.ts
|
|
5
5
|
|
|
6
6
|
// src/logic/get_value.ts
|
|
7
7
|
var getFieldValue = (event) => {
|
|
@@ -210,8 +210,8 @@ var getResolverFields = (fields) => {
|
|
|
210
210
|
}, {});
|
|
211
211
|
};
|
|
212
212
|
|
|
213
|
-
// src/
|
|
214
|
-
var
|
|
213
|
+
// src/create_form.ts
|
|
214
|
+
var createForm = (arg = { defaultValues: {} }) => {
|
|
215
215
|
const { defaultValues, mode = "onChange", resolver } = arg;
|
|
216
216
|
const { fields, getField, setField } = createFields();
|
|
217
217
|
const { rules, addRule, getRule } = createRules();
|
|
@@ -361,6 +361,10 @@ var useForm = (arg = { defaultValues: {} }) => {
|
|
|
361
361
|
};
|
|
362
362
|
return {
|
|
363
363
|
control,
|
|
364
|
+
formState: {
|
|
365
|
+
errors,
|
|
366
|
+
isValid
|
|
367
|
+
},
|
|
364
368
|
values,
|
|
365
369
|
errors,
|
|
366
370
|
isValid,
|
|
@@ -368,29 +372,10 @@ var useForm = (arg = { defaultValues: {} }) => {
|
|
|
368
372
|
getValues,
|
|
369
373
|
setValue,
|
|
370
374
|
onSubmit,
|
|
375
|
+
handleSubmit: onSubmit,
|
|
371
376
|
reset
|
|
372
377
|
};
|
|
373
378
|
};
|
|
374
|
-
var FormContext = createContext();
|
|
375
|
-
|
|
376
|
-
// src/form_provider.tsx
|
|
377
|
-
var FormProvider = (props) => {
|
|
378
|
-
return createComponent(FormContext.Provider, {
|
|
379
|
-
get value() {
|
|
380
|
-
return props.form;
|
|
381
|
-
},
|
|
382
|
-
get children() {
|
|
383
|
-
return props.children;
|
|
384
|
-
}
|
|
385
|
-
});
|
|
386
|
-
};
|
|
387
|
-
var useFormContext = () => {
|
|
388
|
-
const form = useContext(FormContext);
|
|
389
|
-
if (!form) {
|
|
390
|
-
throw new Error("useFormContext: cannot find a FormProvider");
|
|
391
|
-
}
|
|
392
|
-
return form;
|
|
393
|
-
};
|
|
394
379
|
var useController = (arg) => {
|
|
395
380
|
const fieldProps = arg.control.register(arg.name, arg.rules);
|
|
396
381
|
const value = createMemo(() => {
|
|
@@ -409,11 +394,29 @@ var useController = (arg) => {
|
|
|
409
394
|
}
|
|
410
395
|
};
|
|
411
396
|
};
|
|
412
|
-
|
|
413
|
-
// src/controller.tsx
|
|
414
397
|
var Controller = (props) => {
|
|
415
398
|
const controller = useController(props);
|
|
416
399
|
return memo(() => props.render(controller));
|
|
417
400
|
};
|
|
401
|
+
var FormContext = createContext();
|
|
402
|
+
|
|
403
|
+
// src/use_form_context.ts
|
|
404
|
+
var useFormContext = () => {
|
|
405
|
+
const form = useContext(FormContext);
|
|
406
|
+
if (!form) {
|
|
407
|
+
throw new Error("useFormContext: cannot find a FormProvider");
|
|
408
|
+
}
|
|
409
|
+
return form;
|
|
410
|
+
};
|
|
411
|
+
var FormProvider = (props) => {
|
|
412
|
+
return createComponent(FormContext.Provider, {
|
|
413
|
+
get value() {
|
|
414
|
+
return props.form;
|
|
415
|
+
},
|
|
416
|
+
get children() {
|
|
417
|
+
return props.children;
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
};
|
|
418
421
|
|
|
419
|
-
export { Controller, FormProvider, get, set, useForm, useFormContext };
|
|
422
|
+
export { Controller, FormProvider, createForm, get, set, useController, createForm as useForm, useFormContext };
|
package/dist/main.jsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// src/
|
|
1
|
+
// src/create_form.ts
|
|
2
2
|
import { createMemo, createSignal as createSignal2 } from "solid-js";
|
|
3
3
|
|
|
4
4
|
// src/logic/get_value.ts
|
|
@@ -211,8 +211,8 @@ var getResolverFields = (fields) => {
|
|
|
211
211
|
}, {});
|
|
212
212
|
};
|
|
213
213
|
|
|
214
|
-
// src/
|
|
215
|
-
var
|
|
214
|
+
// src/create_form.ts
|
|
215
|
+
var createForm = (arg = { defaultValues: {} }) => {
|
|
216
216
|
const { defaultValues, mode = "onChange", resolver } = arg;
|
|
217
217
|
const { fields, getField, setField } = createFields();
|
|
218
218
|
const { rules, addRule, getRule } = createRules();
|
|
@@ -362,6 +362,10 @@ var useForm = (arg = { defaultValues: {} }) => {
|
|
|
362
362
|
};
|
|
363
363
|
return {
|
|
364
364
|
control,
|
|
365
|
+
formState: {
|
|
366
|
+
errors,
|
|
367
|
+
isValid
|
|
368
|
+
},
|
|
365
369
|
values,
|
|
366
370
|
errors,
|
|
367
371
|
isValid,
|
|
@@ -369,29 +373,11 @@ var useForm = (arg = { defaultValues: {} }) => {
|
|
|
369
373
|
getValues,
|
|
370
374
|
setValue,
|
|
371
375
|
onSubmit,
|
|
376
|
+
handleSubmit: onSubmit,
|
|
372
377
|
reset
|
|
373
378
|
};
|
|
374
379
|
};
|
|
375
380
|
|
|
376
|
-
// src/form_context.ts
|
|
377
|
-
import { createContext } from "solid-js";
|
|
378
|
-
var FormContext = createContext();
|
|
379
|
-
|
|
380
|
-
// src/form_provider.tsx
|
|
381
|
-
var FormProvider = (props) => {
|
|
382
|
-
return <FormContext.Provider value={props.form}>{props.children}</FormContext.Provider>;
|
|
383
|
-
};
|
|
384
|
-
|
|
385
|
-
// src/use_form_context.ts
|
|
386
|
-
import { useContext } from "solid-js";
|
|
387
|
-
var useFormContext = () => {
|
|
388
|
-
const form = useContext(FormContext);
|
|
389
|
-
if (!form) {
|
|
390
|
-
throw new Error("useFormContext: cannot find a FormProvider");
|
|
391
|
-
}
|
|
392
|
-
return form;
|
|
393
|
-
};
|
|
394
|
-
|
|
395
381
|
// src/use_controller.ts
|
|
396
382
|
import { createMemo as createMemo2 } from "solid-js";
|
|
397
383
|
var useController = (arg) => {
|
|
@@ -418,11 +404,34 @@ var Controller = (props) => {
|
|
|
418
404
|
const controller = useController(props);
|
|
419
405
|
return <>{props.render(controller)}</>;
|
|
420
406
|
};
|
|
407
|
+
|
|
408
|
+
// src/use_form_context.ts
|
|
409
|
+
import { useContext } from "solid-js";
|
|
410
|
+
|
|
411
|
+
// src/form_context.ts
|
|
412
|
+
import { createContext } from "solid-js";
|
|
413
|
+
var FormContext = createContext();
|
|
414
|
+
|
|
415
|
+
// src/use_form_context.ts
|
|
416
|
+
var useFormContext = () => {
|
|
417
|
+
const form = useContext(FormContext);
|
|
418
|
+
if (!form) {
|
|
419
|
+
throw new Error("useFormContext: cannot find a FormProvider");
|
|
420
|
+
}
|
|
421
|
+
return form;
|
|
422
|
+
};
|
|
423
|
+
|
|
424
|
+
// src/form_provider.tsx
|
|
425
|
+
var FormProvider = (props) => {
|
|
426
|
+
return <FormContext.Provider value={props.form}>{props.children}</FormContext.Provider>;
|
|
427
|
+
};
|
|
421
428
|
export {
|
|
422
429
|
Controller,
|
|
423
430
|
FormProvider,
|
|
431
|
+
createForm,
|
|
424
432
|
get,
|
|
425
433
|
set,
|
|
426
|
-
|
|
434
|
+
useController,
|
|
435
|
+
createForm as useForm,
|
|
427
436
|
useFormContext
|
|
428
437
|
};
|