solid-hook-form 1.7.2 → 1.8.0

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Path, LiteralUnion, FieldPath, FieldPathValue, Resolver } from 'react-hook-form';
2
2
  import * as solid_js from 'solid-js';
3
- import { Accessor, ParentProps, JSX } from 'solid-js';
3
+ import { Accessor, JSXElement, ParentProps } from 'solid-js';
4
4
 
5
5
  type Message = string;
6
6
  type FieldError = {
@@ -34,6 +34,24 @@ type Control<F extends FormValues> = {
34
34
  errors: Accessor<FieldErrors<F>>;
35
35
  register: Register<F>;
36
36
  };
37
+ type UseControllerReturn = {
38
+ field: {
39
+ name: string;
40
+ value: Accessor<any>;
41
+ onInput(event: Event): void;
42
+ onChange(event: Event): void;
43
+ ref(element: HTMLElement): void;
44
+ };
45
+ fieldState: {
46
+ error: Accessor<FieldError | undefined>;
47
+ };
48
+ };
49
+ type ControllerProps<F extends FormValues> = {
50
+ control: Control<F>;
51
+ name: Path<F>;
52
+ rules?: Rules<F>;
53
+ render(arg: UseControllerReturn): JSXElement;
54
+ };
37
55
 
38
56
  type FormValues = Record<string, any>;
39
57
  type Ref = HTMLElement | null;
@@ -78,25 +96,7 @@ declare const FormProvider: <T extends FormValues>(props: FormProviderProps<T>)
78
96
 
79
97
  declare const useFormContext: <T extends FormValues>() => UseFormReturn<T>;
80
98
 
81
- type ControllerRenderArg = {
82
- field: {
83
- name: string;
84
- value: Accessor<any>;
85
- onInput(event: Event): void;
86
- onChange(event: Event): void;
87
- ref(element: HTMLElement): void;
88
- };
89
- fieldState: {
90
- error: Accessor<FieldError | undefined>;
91
- };
92
- };
93
- type ControllerProps<F extends FormValues> = {
94
- control: Control<F>;
95
- name: Path<F>;
96
- rules?: Rules<F>;
97
- render(arg: ControllerRenderArg): JSX.Element;
98
- };
99
- declare const Controller: <F extends FormValues>(props: ControllerProps<F>) => JSX.Element;
99
+ declare const Controller: <F extends FormValues>(props: ControllerProps<F>) => solid_js.JSX.Element;
100
100
 
101
101
  declare const get: (object: any, path: string, defaultValue?: unknown) => any;
102
102
 
package/dist/main.js CHANGED
@@ -391,15 +391,15 @@ var useFormContext = () => {
391
391
  }
392
392
  return form;
393
393
  };
394
- var Controller = (props) => {
395
- const fieldProps = props.control.register(props.name, props.rules);
394
+ var useController = (arg) => {
395
+ const fieldProps = arg.control.register(arg.name, arg.rules);
396
396
  const value = createMemo(() => {
397
- return get(props.control.values(), props.name);
397
+ return get(arg.control.values(), arg.name);
398
398
  });
399
399
  const error = createMemo(() => {
400
- return props.control.errors()[props.name];
400
+ return arg.control.errors()[arg.name];
401
401
  });
402
- return memo(() => props.render({
402
+ return {
403
403
  field: {
404
404
  value,
405
405
  ...fieldProps
@@ -407,7 +407,13 @@ var Controller = (props) => {
407
407
  fieldState: {
408
408
  error
409
409
  }
410
- }));
410
+ };
411
+ };
412
+
413
+ // src/controller.tsx
414
+ var Controller = (props) => {
415
+ const controller = useController(props);
416
+ return memo(() => props.render(controller));
411
417
  };
412
418
 
413
419
  export { Controller, FormProvider, get, set, useForm, useFormContext };
package/dist/main.jsx CHANGED
@@ -392,18 +392,17 @@ var useFormContext = () => {
392
392
  return form;
393
393
  };
394
394
 
395
- // src/controller.tsx
395
+ // src/use_controller.ts
396
396
  import { createMemo as createMemo2 } from "solid-js";
397
- var Controller = (props) => {
398
- const fieldProps = props.control.register(props.name, props.rules);
397
+ var useController = (arg) => {
398
+ const fieldProps = arg.control.register(arg.name, arg.rules);
399
399
  const value = createMemo2(() => {
400
- return get(props.control.values(), props.name);
400
+ return get(arg.control.values(), arg.name);
401
401
  });
402
402
  const error = createMemo2(() => {
403
- return props.control.errors()[props.name];
403
+ return arg.control.errors()[arg.name];
404
404
  });
405
- return <>
406
- {props.render({
405
+ return {
407
406
  field: {
408
407
  value,
409
408
  ...fieldProps
@@ -411,8 +410,13 @@ var Controller = (props) => {
411
410
  fieldState: {
412
411
  error
413
412
  }
414
- })}
415
- </>;
413
+ };
414
+ };
415
+
416
+ // src/controller.tsx
417
+ var Controller = (props) => {
418
+ const controller = useController(props);
419
+ return <>{props.render(controller)}</>;
416
420
  };
417
421
  export {
418
422
  Controller,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solid-hook-form",
3
- "version": "1.7.2",
3
+ "version": "1.8.0",
4
4
  "type": "module",
5
5
  "main": "./dist/main.js",
6
6
  "module": "./dist/main.js",