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 CHANGED
@@ -24,19 +24,19 @@ npm install solid-hook-form
24
24
  ### Quick start
25
25
 
26
26
  ```jsx
27
- import { useForm } from "solid-hook-form";
27
+ import { createForm } from "solid-hook-form";
28
28
 
29
29
  const ExampleForm = () => {
30
- const { errors, register, onSubmit } = useForm({
30
+ const { errors, register, handleSubmit } = createForm({
31
31
  defaultValues: {
32
32
  name: "",
33
33
  },
34
34
  });
35
35
 
36
- const submitExample = (values) => console.log(values);
36
+ const onSubmit = (values) => console.log(values);
37
37
 
38
38
  return (
39
- <form onSubmit={onSubmit(submitExample)}>
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 UseFormReturn<F extends FormValues = FormValues> = {
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
- type UseFormArg<F extends FormValues> = {
86
- defaultValues: F;
87
- mode?: "onChange" | "onSubmit";
88
- resolver?: Resolver<F>;
89
- };
90
- declare const useForm: <F extends FormValues>(arg?: UseFormArg<F>) => UseFormReturn<F>;
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: UseFormReturn<T>;
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 { createComponent, memo } from 'solid-js/web';
2
+ import { memo, createComponent } from 'solid-js/web';
3
3
 
4
- // src/use_form.ts
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/use_form.ts
214
- var useForm = (arg = { defaultValues: {} }) => {
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/use_form.ts
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/use_form.ts
215
- var useForm = (arg = { defaultValues: {} }) => {
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
- useForm,
434
+ useController,
435
+ createForm as useForm,
427
436
  useFormContext
428
437
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solid-hook-form",
3
- "version": "1.8.0",
3
+ "version": "1.9.1",
4
4
  "type": "module",
5
5
  "main": "./dist/main.js",
6
6
  "module": "./dist/main.js",