@lucas-barake/effect-form-react 0.20.0 → 0.21.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.
@@ -1,41 +1,32 @@
1
1
  import * as Atom from "@effect-atom/atom/Atom";
2
- import { Field, FormAtoms, Mode } from "@lucas-barake/effect-form";
2
+ import type * as Registry from "@effect-atom/atom/Registry";
3
+ import { Field, FormAtoms } from "@lucas-barake/effect-form";
4
+ import type { FieldState as FieldStateModule, Mode } from "@lucas-barake/effect-form";
3
5
  import type * as FormBuilder from "@lucas-barake/effect-form/FormBuilder";
4
6
  import type * as Effect from "effect/Effect";
5
7
  import * as Option from "effect/Option";
6
- import * as ParseResult from "effect/ParseResult";
8
+ import type * as ParseResult from "effect/ParseResult";
7
9
  import type * as Schema from "effect/Schema";
8
10
  import * as React from "react";
9
- export type FieldValue<T> = T extends Schema.Schema.Any ? Schema.Schema.Encoded<T> : T;
10
- export interface FieldState<E> {
11
- readonly value: E;
12
- readonly onChange: (value: E) => void;
13
- readonly onBlur: () => void;
14
- readonly error: Option.Option<string>;
15
- readonly isTouched: boolean;
16
- readonly isValidating: boolean;
17
- readonly isDirty: boolean;
18
- }
11
+ export type FieldValue<T> = FieldStateModule.FieldValue<T>;
12
+ export type FieldState<E> = FieldStateModule.FieldState<E>;
13
+ export type ArrayFieldOperations<TItem> = FieldStateModule.ArrayFieldOperations<TItem>;
19
14
  export interface FieldComponentProps<E, P = Record<string, never>> {
20
15
  readonly field: FieldState<E>;
21
16
  readonly props: P;
22
17
  }
23
18
  export type FieldComponent<T, P = Record<string, never>> = React.FC<FieldComponentProps<FieldValue<T>, P>>;
24
19
  export type ExtractExtraProps<C> = C extends React.FC<FieldComponentProps<any, infer P>> ? P : Record<string, never>;
25
- export type ArrayItemComponentMap<S extends Schema.Schema.Any> = S extends Schema.Struct<infer Fields> ? {
26
- readonly [K in keyof Fields]: Fields[K] extends Schema.Schema.Any ? React.FC<FieldComponentProps<Schema.Schema.Encoded<Fields[K]>, any>> : never;
20
+ type StructFieldsFromSchema<S> = S extends Schema.Struct<infer Fields> ? Fields : S extends {
21
+ readonly from: infer From;
22
+ } ? StructFieldsFromSchema<From> : never;
23
+ export type ArrayItemComponentMap<S extends Schema.Schema.Any> = StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
24
+ readonly [K in keyof StructFieldsFromSchema<S>]: StructFieldsFromSchema<S>[K] extends Schema.Schema.Any ? React.FC<FieldComponentProps<Schema.Schema.Encoded<StructFieldsFromSchema<S>[K]>, any>> : never;
27
25
  } : React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, any>>;
28
26
  export type FieldComponentMap<TFields extends Field.FieldsRecord> = {
29
27
  readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S> ? React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, any>> : TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayItemComponentMap<S> : never;
30
28
  };
31
29
  export type FieldRefs<TFields extends Field.FieldsRecord> = FormAtoms.FieldRefs<TFields>;
32
- export interface ArrayFieldOperations<TItem> {
33
- readonly items: ReadonlyArray<TItem>;
34
- readonly append: (value?: TItem) => void;
35
- readonly remove: (index: number) => void;
36
- readonly swap: (indexA: number, indexB: number) => void;
37
- readonly move: (from: number, to: number) => void;
38
- }
39
30
  export type BuiltForm<TFields extends Field.FieldsRecord, R, A = void, E = never, SubmitArgs = void, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>> = {
40
31
  readonly values: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields>>>;
41
32
  readonly isDirty: Atom.Atom<boolean>;
@@ -52,17 +43,15 @@ export type BuiltForm<TFields extends Field.FieldsRecord, R, A = void, E = never
52
43
  readonly reset: Atom.Writable<void, void>;
53
44
  readonly revertToLastSubmit: Atom.Writable<void, void>;
54
45
  readonly setValues: Atom.Writable<void, Field.EncodedFromFields<TFields>>;
55
- readonly setValue: <S>(field: FormBuilder.FieldRef<S>) => Atom.Writable<void, S | ((prev: S) => S)>;
56
- readonly getFieldValue: <S>(field: FormBuilder.FieldRef<S>) => Atom.Atom<Option.Option<S>>;
57
- readonly getFieldIsDirty: (field: FormBuilder.FieldRef<any>) => Atom.Atom<boolean>;
46
+ readonly getFieldAtoms: <S>(field: FormBuilder.FieldRef<S>) => FormAtoms.PublicFieldAtoms<S>;
58
47
  readonly mount: Atom.Atom<void>;
59
48
  readonly KeepAlive: React.FC;
60
49
  } & FieldComponents<TFields, CM>;
61
50
  type FieldComponents<TFields extends Field.FieldsRecord, CM extends FieldComponentMap<TFields>> = {
62
51
  readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, any> ? React.FC<ExtractExtraProps<CM[K]>> : TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayFieldComponent<S, ExtractArrayItemExtraProps<CM[K], S>> : never;
63
52
  };
64
- type ExtractArrayItemExtraProps<CM, S extends Schema.Schema.Any> = S extends Schema.Struct<infer Fields> ? {
65
- readonly [K in keyof Fields]: CM extends {
53
+ type ExtractArrayItemExtraProps<CM, S extends Schema.Schema.Any> = StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
54
+ readonly [K in keyof StructFieldsFromSchema<S>]: CM extends {
66
55
  readonly [P in K]: infer C;
67
56
  } ? ExtractExtraProps<C> : never;
68
57
  } : CM extends React.FC<FieldComponentProps<any, infer P>> ? P : never;
@@ -75,14 +64,14 @@ type ArrayFieldComponent<S extends Schema.Schema.Any, ExtraPropsMap> = React.FC<
75
64
  readonly remove: () => void;
76
65
  }) => React.ReactNode);
77
66
  }>;
78
- } & (S extends Schema.Struct<infer Fields> ? {
79
- readonly [K in keyof Fields]: React.FC<ExtraPropsMap extends {
67
+ } & (StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
68
+ readonly [K in keyof StructFieldsFromSchema<S>]: React.FC<ExtraPropsMap extends {
80
69
  readonly [P in K]: infer EP;
81
70
  } ? EP : Record<string, never>>;
82
71
  } : unknown);
83
72
  export declare const make: {
84
- <TFields extends Field.FieldsRecord, A, E, SubmitArgs = void, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>>(self: FormBuilder.FormBuilder<TFields, never>, options: {
85
- readonly runtime?: Atom.AtomRuntime<never, never>;
73
+ <TFields extends Field.FieldsRecord, R extends Registry.AtomRegistry, A, E, SubmitArgs = void, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>>(self: FormBuilder.FormBuilder<TFields, R>, options: {
74
+ readonly runtime?: Atom.AtomRuntime<any, any>;
86
75
  readonly fields: CM;
87
76
  readonly mode?: SubmitArgs extends void ? Mode.FormMode : Mode.FormModeWithoutAutoSubmit;
88
77
  readonly reactivityKeys?: ReadonlyArray<unknown> | Readonly<Record<string, ReadonlyArray<unknown>>> | undefined;
@@ -90,8 +79,8 @@ export declare const make: {
90
79
  readonly decoded: Field.DecodedFromFields<TFields>;
91
80
  readonly encoded: Field.EncodedFromFields<TFields>;
92
81
  readonly get: Atom.FnContext;
93
- }) => A | Effect.Effect<A, E, never>;
94
- }): BuiltForm<TFields, never, A, E, SubmitArgs, CM>;
82
+ }) => A | Effect.Effect<A, E, R>;
83
+ }): BuiltForm<TFields, R, A, E, SubmitArgs, CM>;
95
84
  <TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = void, ER = never, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>>(self: FormBuilder.FormBuilder<TFields, R>, options: {
96
85
  readonly runtime: Atom.AtomRuntime<R, ER>;
97
86
  readonly fields: CM;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormReact.d.ts","sourceRoot":"","sources":["../src/FormReact.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,KAAK,QAAQ,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,IAAI,gBAAgB,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AACrF,OAAO,KAAK,KAAK,WAAW,MAAM,uCAAuC,CAAA;AAEzE,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,MAAM,UAAU,CAAC,CAAC,IAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAE3D,MAAM,MAAM,UAAU,CAAC,CAAC,IAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAE3D,MAAM,MAAM,oBAAoB,CAAC,KAAK,IAAK,gBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAEvF,MAAM,WAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAClB;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAK,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAE3G,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAK,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAErH,KAAK,sBAAsB,CAAC,CAAC,IAAK,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM,GAC5E,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,sBAAsB,CAAC,IAAI,CAAC,GACtE,KAAK,CAAA;AAET,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,IAAK,sBAAsB,CAAC,CAAC,CAAC,SACzF,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG;IACrB,QAAQ,EAAE,CAAC,IAAI,MAAM,sBAAsB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,GACnG,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GACvF,KAAK;CACV,GACC,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AAEhE,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,KAAK,CAAC,YAAY,IAAK;IACnE,QAAQ,EAAE,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAC1E,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAC5D,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAC/E,KAAK;CACV,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,KAAK,CAAC,YAAY,IAAK,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AAEzF,MAAM,MAAM,SAAS,CACnB,OAAO,SAAS,KAAK,CAAC,YAAY,EAClC,CAAC,EACD,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,KAAK,EACT,UAAU,GAAG,IAAI,EACjB,EAAE,SAAS,iBAAiB,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAChE;IACF,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3E,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpC,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClD,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5F,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IACrG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAEnC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5B,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACxD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KACnC,CAAC,CAAA;IAEF,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IAC7E,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACzC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACtD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAA;IACzE,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,EAAG,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAE7F,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAA;CAC7B,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAEhC,KAAK,eAAe,CAAC,OAAO,SAAS,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,iBAAiB,CAAC,OAAO,CAAC,IAAK;IACjG,QAAQ,EAAE,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3G,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAClD,mBAAmB,CAAC,CAAC,EAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAC9D,KAAK;CACV,CAAA;AAED,KAAK,0BAA0B,CAAC,EAAE,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,IAAK,sBAAsB,CAAC,CAAC,CAAC,SAC3F,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG;IACrB,QAAQ,EAAE,CAAC,IAAI,MAAM,sBAAsB,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS;QAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;KAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAC7G,KAAK;CACV,GACC,EAAE,SAAS,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAC1D,KAAK,CAAA;AAET,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,IAC/D,KAAK,CAAC,EAAE,CAAC;IACT,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;CAC5F,CAAC,GACA;IACA,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;SAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAA;KACnG,CAAC,CAAA;CACH,GACC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG;IACxD,QAAQ,EAAE,CAAC,IAAI,MAAM,sBAAsB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CACvD,aAAa,SAAS;QAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE;KAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACnF;CACF,GACC,OAAO,CAAC,CAAA;AA8Nd,eAAO,MAAM,IAAI,EAAE;IACjB,CACE,OAAO,SAAS,KAAK,CAAC,YAAY,EAClC,CAAC,SAAS,QAAQ,CAAC,YAAY,EAC/B,CAAC,EACD,CAAC,EACD,UAAU,GAAG,IAAI,EACjB,EAAE,SAAS,iBAAiB,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAElE,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EACzC,OAAO,EAAE;QACP,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC7C,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAA;QACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,SAAS,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAA;QACxF,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;QAC/G,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE;YACH,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAClD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAClD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAA;SAC7B,KACE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;KAChC,GACA,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;IAE9C,CACE,OAAO,SAAS,KAAK,CAAC,YAAY,EAClC,CAAC,EACD,CAAC,EACD,CAAC,EACD,UAAU,GAAG,IAAI,EACjB,EAAE,GAAG,KAAK,EACV,EAAE,SAAS,iBAAiB,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAElE,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EACzC,OAAO,EAAE;QACP,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACzC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAA;QACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,SAAS,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAA;QACxF,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;QAC/G,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE;YACH,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAClD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAClD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAA;SAC7B,KACE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;KAChC,GACA,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;CAsG/C,CAAA"}
@@ -0,0 +1,238 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomValue } from "@effect-atom/atom-react";
3
+ import * as Atom from "@effect-atom/atom/Atom";
4
+ import { Field, FormAtoms } from "@lucas-barake/effect-form";
5
+ import { getNestedValue } from "@lucas-barake/effect-form/Path";
6
+ import * as Layer from "effect/Layer";
7
+ import * as Option from "effect/Option";
8
+ import * as React from "react";
9
+ import { createContext, useContext } from "react";
10
+ const ArrayItemContext = /*#__PURE__*/createContext(null);
11
+ const makeFieldComponent = (fieldKey, fieldDef, getOrCreateFieldAtoms, Component, onBlurSubmitAtom) => {
12
+ const FieldComponent = extraProps => {
13
+ const arrayCtx = useContext(ArrayItemContext);
14
+ const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
15
+ const fieldAtoms = React.useMemo(() => getOrCreateFieldAtoms(fieldPath, fieldDef.schema), [fieldPath]);
16
+ const [value, setValue] = useAtom(fieldAtoms.valueAtom);
17
+ const [isTouched, setTouched] = useAtom(fieldAtoms.touchedAtom);
18
+ const displayError = useAtomValue(fieldAtoms.displayErrorAtom);
19
+ const isDirty = useAtomValue(fieldAtoms.isDirtyAtom);
20
+ const isValidating = useAtomValue(fieldAtoms.validationAtom).waiting;
21
+ const setOnBlurSubmit = useAtomSet(onBlurSubmitAtom);
22
+ useAtomMount(fieldAtoms.triggerValidationAtom);
23
+ const onChange = React.useCallback(newValue => setValue(newValue), [setValue]);
24
+ const onBlur = React.useCallback(() => {
25
+ setTouched(true);
26
+ setOnBlurSubmit();
27
+ }, [setTouched, setOnBlurSubmit]);
28
+ const fieldState = React.useMemo(() => ({
29
+ value,
30
+ onChange,
31
+ onBlur,
32
+ error: displayError,
33
+ isTouched,
34
+ isValidating,
35
+ isDirty
36
+ }), [value, onChange, onBlur, displayError, isTouched, isValidating, isDirty]);
37
+ return _jsx(Component, {
38
+ field: fieldState,
39
+ props: extraProps
40
+ });
41
+ };
42
+ return React.memo(FieldComponent);
43
+ };
44
+ const makeArrayFieldComponent = (fieldKey, def, stateAtom, getOrCreateFieldAtoms, operations, componentMap, onBlurSubmitAtom) => {
45
+ const ArrayWrapper = ({
46
+ children
47
+ }) => {
48
+ const arrayCtx = useContext(ArrayItemContext);
49
+ const [formStateOption, setFormState] = useAtom(stateAtom);
50
+ const formState = Option.getOrThrow(formStateOption);
51
+ const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
52
+ const items = React.useMemo(() => getNestedValue(formState.values, fieldPath) ?? [], [formState.values, fieldPath]);
53
+ const append = React.useCallback(value => {
54
+ setFormState(prev => {
55
+ if (Option.isNone(prev)) return prev;
56
+ return Option.some(operations.appendArrayItem(prev.value, fieldPath, def.itemSchema, value));
57
+ });
58
+ }, [fieldPath, setFormState]);
59
+ const remove = React.useCallback(index => {
60
+ setFormState(prev => {
61
+ if (Option.isNone(prev)) return prev;
62
+ return Option.some(operations.removeArrayItem(prev.value, fieldPath, index));
63
+ });
64
+ }, [fieldPath, setFormState]);
65
+ const swap = React.useCallback((indexA, indexB) => {
66
+ setFormState(prev => {
67
+ if (Option.isNone(prev)) return prev;
68
+ return Option.some(operations.swapArrayItems(prev.value, fieldPath, indexA, indexB));
69
+ });
70
+ }, [fieldPath, setFormState]);
71
+ const move = React.useCallback((from, to) => {
72
+ setFormState(prev => {
73
+ if (Option.isNone(prev)) return prev;
74
+ return Option.some(operations.moveArrayItem(prev.value, fieldPath, from, to));
75
+ });
76
+ }, [fieldPath, setFormState]);
77
+ return _jsx(_Fragment, {
78
+ children: children({
79
+ items,
80
+ append,
81
+ remove,
82
+ swap,
83
+ move
84
+ })
85
+ });
86
+ };
87
+ const ItemWrapper = ({
88
+ children,
89
+ index
90
+ }) => {
91
+ const arrayCtx = useContext(ArrayItemContext);
92
+ const setFormState = useAtomSet(stateAtom);
93
+ const parentPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
94
+ const itemPath = `${parentPath}[${index}]`;
95
+ const remove = React.useCallback(() => {
96
+ setFormState(prev => {
97
+ if (Option.isNone(prev)) return prev;
98
+ return Option.some(operations.removeArrayItem(prev.value, parentPath, index));
99
+ });
100
+ }, [parentPath, index, setFormState]);
101
+ return _jsx(ArrayItemContext.Provider, {
102
+ value: {
103
+ index,
104
+ parentPath: itemPath
105
+ },
106
+ children: typeof children === "function" ? children({
107
+ remove
108
+ }) : children
109
+ });
110
+ };
111
+ const itemFieldComponents = {};
112
+ const subFieldDefs = Field.extractStructFieldDefs(def.itemSchema);
113
+ if (subFieldDefs) {
114
+ for (const subDef of subFieldDefs) {
115
+ const itemComponent = componentMap[subDef.key];
116
+ itemFieldComponents[subDef.key] = makeFieldComponent(subDef.key, subDef, getOrCreateFieldAtoms, itemComponent, onBlurSubmitAtom);
117
+ }
118
+ }
119
+ const properties = {
120
+ Item: ItemWrapper,
121
+ ...itemFieldComponents
122
+ };
123
+ return new Proxy(ArrayWrapper, {
124
+ get(target, prop) {
125
+ if (prop in properties) {
126
+ return properties[prop];
127
+ }
128
+ return Reflect.get(target, prop);
129
+ }
130
+ });
131
+ };
132
+ const makeFieldComponents = (fields, stateAtom, getOrCreateFieldAtoms, operations, componentMap, onBlurSubmitAtom) => {
133
+ const components = {};
134
+ for (const [key, def] of Object.entries(fields)) {
135
+ if (Field.isArrayFieldDef(def)) {
136
+ const arrayComponentMap = componentMap[key];
137
+ components[key] = makeArrayFieldComponent(key, def, stateAtom, getOrCreateFieldAtoms, operations, arrayComponentMap, onBlurSubmitAtom);
138
+ } else if (Field.isFieldDef(def)) {
139
+ const fieldComponent = componentMap[key];
140
+ components[key] = makeFieldComponent(key, def, getOrCreateFieldAtoms, fieldComponent, onBlurSubmitAtom);
141
+ }
142
+ }
143
+ return components;
144
+ };
145
+ export const make = (self, options) => {
146
+ const {
147
+ fields: components,
148
+ mode,
149
+ onSubmit,
150
+ runtime: providedRuntime,
151
+ reactivityKeys
152
+ } = options;
153
+ const runtime = providedRuntime ?? Atom.runtime(Layer.empty);
154
+ const {
155
+ fields
156
+ } = self;
157
+ const formAtoms = FormAtoms.make({
158
+ formBuilder: self,
159
+ runtime,
160
+ onSubmit,
161
+ reactivityKeys,
162
+ mode
163
+ });
164
+ const {
165
+ autoSubmitAtom,
166
+ combinedSchema,
167
+ fieldRefs,
168
+ getFieldAtoms,
169
+ getOrCreateFieldAtoms,
170
+ hasChangedSinceSubmitAtom,
171
+ isDirtyAtom,
172
+ keepAliveActiveAtom,
173
+ lastSubmittedValuesAtom,
174
+ mountAtom,
175
+ onBlurSubmitAtom,
176
+ operations,
177
+ resetAtom,
178
+ revertToLastSubmitAtom,
179
+ rootErrorAtom,
180
+ setValuesAtom,
181
+ stateAtom,
182
+ submitAtom,
183
+ submitCountAtom,
184
+ valuesAtom
185
+ } = formAtoms;
186
+ const InitializeComponent = ({
187
+ children,
188
+ defaultValues
189
+ }) => {
190
+ const registry = React.useContext(RegistryContext);
191
+ const state = useAtomValue(stateAtom);
192
+ const setFormState = useAtomSet(stateAtom);
193
+ const [isInitialized, setIsInitialized] = React.useState(false);
194
+ React.useEffect(() => {
195
+ const isKeptAlive = registry.get(keepAliveActiveAtom);
196
+ if (!isKeptAlive || Option.isNone(registry.get(stateAtom))) {
197
+ setFormState(Option.some(operations.createInitialState(defaultValues)));
198
+ }
199
+ setIsInitialized(true);
200
+ }, [registry]);
201
+ useAtomMount(autoSubmitAtom);
202
+ if (!isInitialized) return null;
203
+ if (Option.isNone(state)) return null;
204
+ return _jsx(_Fragment, {
205
+ children: children
206
+ });
207
+ };
208
+ const fieldComponents = makeFieldComponents(fields, stateAtom, getOrCreateFieldAtoms, operations, components, onBlurSubmitAtom);
209
+ const KeepAlive = () => {
210
+ const setKeepAliveActive = useAtomSet(keepAliveActiveAtom);
211
+ React.useLayoutEffect(() => {
212
+ setKeepAliveActive(true);
213
+ return () => setKeepAliveActive(false);
214
+ }, [setKeepAliveActive]);
215
+ useAtomMount(mountAtom);
216
+ return null;
217
+ };
218
+ return {
219
+ values: valuesAtom,
220
+ isDirty: isDirtyAtom,
221
+ hasChangedSinceSubmit: hasChangedSinceSubmitAtom,
222
+ lastSubmittedValues: lastSubmittedValuesAtom,
223
+ submitCount: submitCountAtom,
224
+ rootError: rootErrorAtom,
225
+ schema: combinedSchema,
226
+ fields: fieldRefs,
227
+ Initialize: InitializeComponent,
228
+ submit: submitAtom,
229
+ reset: resetAtom,
230
+ revertToLastSubmit: revertToLastSubmitAtom,
231
+ setValues: setValuesAtom,
232
+ getFieldAtoms,
233
+ mount: mountAtom,
234
+ KeepAlive,
235
+ ...fieldComponents
236
+ };
237
+ };
238
+ //# sourceMappingURL=FormReact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormReact.js","names":["RegistryContext","useAtom","useAtomMount","useAtomSet","useAtomValue","Atom","Field","FormAtoms","getNestedValue","Layer","Option","React","createContext","useContext","ArrayItemContext","makeFieldComponent","fieldKey","fieldDef","getOrCreateFieldAtoms","Component","onBlurSubmitAtom","FieldComponent","extraProps","arrayCtx","fieldPath","parentPath","fieldAtoms","useMemo","schema","value","setValue","valueAtom","isTouched","setTouched","touchedAtom","displayError","displayErrorAtom","isDirty","isDirtyAtom","isValidating","validationAtom","waiting","setOnBlurSubmit","triggerValidationAtom","onChange","useCallback","newValue","onBlur","fieldState","error","_jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","operations","componentMap","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","values","append","prev","isNone","some","appendArrayItem","itemSchema","remove","index","removeArrayItem","swap","indexA","indexB","swapArrayItems","move","from","to","moveArrayItem","_Fragment","ItemWrapper","itemPath","Provider","itemFieldComponents","subFieldDefs","extractStructFieldDefs","subDef","itemComponent","key","properties","Item","Proxy","get","target","prop","Reflect","makeFieldComponents","fields","components","Object","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","fieldComponent","make","self","options","mode","onSubmit","runtime","providedRuntime","reactivityKeys","empty","formAtoms","formBuilder","autoSubmitAtom","combinedSchema","fieldRefs","getFieldAtoms","hasChangedSinceSubmitAtom","keepAliveActiveAtom","lastSubmittedValuesAtom","mountAtom","resetAtom","revertToLastSubmitAtom","rootErrorAtom","setValuesAtom","submitAtom","submitCountAtom","valuesAtom","InitializeComponent","defaultValues","registry","state","isInitialized","setIsInitialized","useState","useEffect","isKeptAlive","createInitialState","fieldComponents","KeepAlive","setKeepAliveActive","useLayoutEffect","hasChangedSinceSubmit","lastSubmittedValues","submitCount","rootError","Initialize","submit","reset","revertToLastSubmit","setValues","mount"],"sources":["../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export { Field, FieldState, FormBuilder } from "@lucas-barake/effect-form";
2
+ export * as FormReact from "./FormReact.tsx";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE1E,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { Field, FieldState, FormBuilder } from "@lucas-barake/effect-form";
2
+ export * as FormReact from "./FormReact.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Field","FieldState","FormBuilder","FormReact"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,EAAEC,UAAU,EAAEC,WAAW,QAAQ,2BAA2B;AAE1E,OAAO,KAAKC,SAAS,MAAM,gBAAiB","ignoreList":[]}
package/package.json CHANGED
@@ -1,17 +1,47 @@
1
1
  {
2
2
  "name": "@lucas-barake/effect-form-react",
3
- "version": "0.20.0",
3
+ "version": "0.21.0",
4
4
  "description": "React bindings for @lucas-barake/effect-form",
5
- "license": "MIT",
5
+ "type": "module",
6
+ "publishConfig": {
7
+ "access": "public",
8
+ "provenance": true
9
+ },
10
+ "exports": {
11
+ "./package.json": "./package.json",
12
+ ".": "./dist/index.js",
13
+ "./*": "./dist/*.js",
14
+ "./internal/*": null
15
+ },
16
+ "files": [
17
+ "src/**/*.ts",
18
+ "src/**/*.tsx",
19
+ "dist/**/*.js",
20
+ "dist/**/*.js.map",
21
+ "dist/**/*.d.ts",
22
+ "dist/**/*.d.ts.map"
23
+ ],
6
24
  "repository": {
7
25
  "type": "git",
8
26
  "url": "https://github.com/lucas-barake/effect-form.git"
9
27
  },
10
- "sideEffects": [],
11
- "author": "Lucas Barake",
12
28
  "homepage": "https://github.com/lucas-barake/effect-form",
29
+ "keywords": [
30
+ "effect",
31
+ "form",
32
+ "react",
33
+ "schema",
34
+ "validation",
35
+ "typescript"
36
+ ],
37
+ "author": "Lucas Barake",
38
+ "license": "MIT",
39
+ "sideEffects": [],
13
40
  "dependencies": {
14
- "@lucas-barake/effect-form": "^0.19.0"
41
+ "@lucas-barake/effect-form": "^0.20.0"
42
+ },
43
+ "devDependencies": {
44
+ "@vitejs/plugin-react": "^5.1.1"
15
45
  },
16
46
  "peerDependencies": {
17
47
  "@effect-atom/atom": "^0.5.0",
@@ -19,15 +49,9 @@
19
49
  "effect": "^3.19.15",
20
50
  "react": "^18.0.0 || ^19.0.0"
21
51
  },
22
- "main": "./dist/cjs/index.js",
23
- "module": "./dist/esm/index.js",
24
- "types": "./dist/dts/index.d.ts",
25
- "exports": {
26
- "./package.json": "./package.json",
27
- ".": {
28
- "types": "./dist/dts/index.d.ts",
29
- "import": "./dist/esm/index.js",
30
- "default": "./dist/cjs/index.js"
31
- }
52
+ "scripts": {
53
+ "build": "tsc -b tsconfig.json && pnpm babel",
54
+ "build:tsgo": "tsgo -b tsconfig.json && pnpm babel",
55
+ "babel": "babel dist --plugins annotate-pure-calls --out-dir dist --source-maps"
32
56
  }
33
57
  }