@os-design/form 1.0.139 → 1.0.141

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/index.d.ts CHANGED
@@ -26,7 +26,7 @@ interface FieldProps<TName, TValue, TData> {
26
26
  }
27
27
  export declare const useForm: <TValues extends Values = Values>(initValues: TValues) => {
28
28
  form: Form<TValues, import("./types.js").Errors<TValues>>;
29
- Field: <TName extends Path<TValues, Exclude<keyof TValues, keyof any[]> & string>, TData>(props: FieldProps<TName, PathReturn<TValues, TName>, TData>) => ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
29
+ Field: <TName extends Path<TValues, Exclude<keyof TValues, keyof any[]> & string>, TData>(props: FieldProps<TName, PathReturn<TValues, TName>, TData>) => ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
30
30
  useValue: <TName extends Path<TValues, Exclude<keyof TValues, keyof any[]> & string>>(name: TName) => PathReturn<TValues, TName>;
31
31
  useError: <TName extends Path<TValues, Exclude<keyof TValues, keyof any[]> & string>>(name: TName) => string | undefined;
32
32
  useTransformer: <TName extends Path<TValues, Exclude<keyof TValues, keyof any[]> & string>>(name: TName, transformer: Transformer<TValues, TName>) => void;
@@ -35,7 +35,7 @@ export declare const useForm: <TValues extends Values = Values>(initValues: TVal
35
35
  };
36
36
  export declare const useExistingForm: <TValues extends Values = Values>() => {
37
37
  form: Form<TValues, import("./types.js").Errors<TValues>>;
38
- Field: <TName extends Path<TValues, Exclude<keyof TValues, keyof any[]> & string>, TData>(props: FieldProps<TName, PathReturn<TValues, TName>, TData>) => ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
38
+ Field: <TName extends Path<TValues, Exclude<keyof TValues, keyof any[]> & string>, TData>(props: FieldProps<TName, PathReturn<TValues, TName>, TData>) => ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
39
39
  useValue: <TName extends Path<TValues, Exclude<keyof TValues, keyof any[]> & string>>(name: TName) => PathReturn<TValues, TName>;
40
40
  useError: <TName extends Path<TValues, Exclude<keyof TValues, keyof any[]> & string>>(name: TName) => string | undefined;
41
41
  useTransformer: <TName extends Path<TValues, Exclude<keyof TValues, keyof any[]> & string>>(name: TName, transformer: Transformer<TValues, TName>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EAMlB,MAAM,OAAO,CAAC;AACf,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAM3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AAoCpC,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,MAAM,EAAE,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAC7E,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,KAC9B;KACF,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;CAC9C,CAAC;AAgCF,UAAU,UAAU,CAAC,MAAM;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AACD,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AACD,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK;IACvC,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,KAAK,KACR,YAAY,GAAG,IAAI,CAAC;CAC1B;AAwHD,eAAO,MAAM,OAAO,GAAI,OAAO,SAAS,MAAM,GAAG,MAAM,EACrD,YAAY,OAAO;;YApHX,KAAK,sEAAwB,KAAK;eA3FzC,KAAK;eAiBL,KAAK;qBAyBE,KAAK;;;CAmLd,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,MAAM,GAAG,MAAM;;YApIrD,KAAK,sEAAwB,KAAK;eA3FzC,KAAK;eAiBL,KAAK;qBAyBE,KAAK;;;CAyLd,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EAMlB,MAAM,OAAO,CAAC;AACf,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAM3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AAoCpC,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,MAAM,EAAE,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAC7E,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,KAC9B;KACF,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;CAC9C,CAAC;AAgCF,UAAU,UAAU,CAAC,MAAM;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AACD,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AACD,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK;IACvC,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,KAAK,KACR,YAAY,GAAG,IAAI,CAAC;CAC1B;AAwHD,eAAO,MAAM,OAAO,GAAI,OAAO,SAAS,MAAM,GAAG,MAAM,EACrD,YAAY,OAAO;;YApHX,KAAK,sEAAwB,KAAK;eA3FzC,KAAK;eAiBL,KAAK;qBAyBE,KAAK;;;CAqLd,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,MAAM,GAAG,MAAM;;YAtIrD,KAAK,sEAAwB,KAAK;eA3FzC,KAAK;eAiBL,KAAK;qBAyBE,KAAK;;;CA2Ld,CAAC"}
package/dist/index.js CHANGED
@@ -140,12 +140,13 @@ const useFormResponse = form => {
140
140
  };
141
141
  export const useForm = initValues => {
142
142
  const memoizedInitValues = useDeepEqualMemo(() => initValues, [initValues]);
143
- const formRef = useRef(new Form(memoizedInitValues));
144
- useEffect(() => {
145
- formRef.current.initValues = memoizedInitValues;
146
- formRef.current.reset();
147
- }, [memoizedInitValues]);
148
- return useFormResponse(formRef.current);
143
+ const [form, setForm] = useState(() => new Form(memoizedInitValues));
144
+ const [prevInitValues, setPrevInitValues] = useState(memoizedInitValues);
145
+ if (prevInitValues !== memoizedInitValues) {
146
+ setPrevInitValues(memoizedInitValues);
147
+ setForm(new Form(memoizedInitValues));
148
+ }
149
+ return useFormResponse(form);
149
150
  };
150
151
  export const useExistingForm = () => {
151
152
  const form = useFormContext();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@os-design/form",
3
- "version": "1.0.139",
3
+ "version": "1.0.141",
4
4
  "license": "UNLICENSED",
5
5
  "repository": "git@gitlab.com:os-team/libs/os-design.git",
6
6
  "type": "module",
@@ -18,21 +18,21 @@
18
18
  "!**/*.emotion.d.ts"
19
19
  ],
20
20
  "scripts": {
21
- "clean": "rimraf dist",
21
+ "clean": "rm -r dist",
22
22
  "build:esm": "cross-env BABEL_ENV=esm babel src --root-mode upward --extensions .ts,.tsx --out-dir dist",
23
23
  "build:types": "tsc -p tsconfig.build.json --emitDeclarationOnly --declaration --declarationDir dist",
24
24
  "build": "yarn clean && npm-run-all 'build:*'",
25
- "ncu": "ncu -u '/^(?!(react|@types/react)$).*$/'"
25
+ "ncu": "ncu -u"
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"
29
29
  },
30
30
  "devDependencies": {
31
- "@os-design/core": "^1.0.304",
32
- "@os-design/icons": "^1.0.73"
31
+ "@os-design/core": "^1.0.306",
32
+ "@os-design/icons": "^1.0.75"
33
33
  },
34
34
  "peerDependencies": {
35
- "react": "18"
35
+ "react": "19"
36
36
  },
37
- "gitHead": "c77ed4290c60bb8c971cf1bb45140a5f7745a361"
37
+ "gitHead": "83ca5af2bb91d07d64440f87b7ab23f5100daa02"
38
38
  }
package/src/index.tsx CHANGED
@@ -235,13 +235,15 @@ export const useForm = <TValues extends Values = Values>(
235
235
  [initValues]
236
236
  );
237
237
 
238
- const formRef = useRef(new Form<TValues>(memoizedInitValues));
239
- useEffect(() => {
240
- formRef.current.initValues = memoizedInitValues;
241
- formRef.current.reset();
242
- }, [memoizedInitValues]);
238
+ const [form, setForm] = useState(() => new Form<TValues>(memoizedInitValues));
239
+ const [prevInitValues, setPrevInitValues] = useState(memoizedInitValues);
240
+
241
+ if (prevInitValues !== memoizedInitValues) {
242
+ setPrevInitValues(memoizedInitValues);
243
+ setForm(new Form<TValues>(memoizedInitValues));
244
+ }
243
245
 
244
- return useFormResponse(formRef.current);
246
+ return useFormResponse(form);
245
247
  };
246
248
 
247
249
  export const useExistingForm = <TValues extends Values = Values>() => {