@douglasneuroinformatics/libui 2.4.1 → 2.4.3

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.
@@ -11,8 +11,9 @@ type FormProps<TSchema extends z.ZodType<FormDataType>, TData extends z.TypeOf<T
11
11
  onSubmit: (data: TData) => void;
12
12
  resetBtn?: boolean;
13
13
  submitBtnLabel?: string;
14
+ useInitialValuesOnReset?: boolean;
14
15
  validationSchema: z.ZodType<TData>;
15
16
  };
16
- declare const Form: <TSchema extends z.ZodType<FormDataType, z.ZodTypeDef, FormDataType>, TData extends z.TypeOf<TSchema> = z.TypeOf<TSchema>>({ className, content, id, initialValues, onError, onSubmit, resetBtn, submitBtnLabel, validationSchema, ...props }: FormProps<TSchema, TData>) => React.JSX.Element;
17
+ declare const Form: <TSchema extends z.ZodType<FormDataType, z.ZodTypeDef, FormDataType>, TData extends z.TypeOf<TSchema> = z.TypeOf<TSchema>>({ className, content, id, initialValues, onError, onSubmit, resetBtn, submitBtnLabel, useInitialValuesOnReset, validationSchema, ...props }: FormProps<TSchema, TData>) => React.JSX.Element;
17
18
  export { Form, type FormProps };
18
19
  //# sourceMappingURL=Form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAGZ,2BAA2B,EAC5B,MAAM,2CAA2C,CAAC;AAInD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,KAAK,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;IAC7G,CAAC,GAAG,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;CACpC,CAAC;AAEF,QAAA,MAAM,IAAI,iPAWP,UAAU,OAAO,EAAE,KAAK,CAAC,sBAgG3B,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAGZ,2BAA2B,EAC5B,MAAM,2CAA2C,CAAC;AAInD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,KAAK,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;IAC7G,CAAC,GAAG,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;CACpC,CAAC;AAEF,QAAA,MAAM,IAAI,0QAYP,UAAU,OAAO,EAAE,KAAK,CAAC,sBAoG3B,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC"}
@@ -8,7 +8,7 @@ import { Heading } from '../Heading/Heading.js';
8
8
  import { ErrorMessage } from './ErrorMessage.js';
9
9
  import { FieldsComponent } from './FieldsComponent.js';
10
10
  import { getInitialValues } from './utils.js';
11
- const Form = ({ className, content, id, initialValues, onError, onSubmit, resetBtn, submitBtnLabel, validationSchema, ...props }) => {
11
+ const Form = ({ className, content, id, initialValues, onError, onSubmit, resetBtn, submitBtnLabel, useInitialValuesOnReset, validationSchema, ...props }) => {
12
12
  const { t } = useTranslation('libui');
13
13
  const [rootError, setRootError] = useState(null);
14
14
  const [errors, setErrors] = useState({});
@@ -33,7 +33,12 @@ const Form = ({ className, content, id, initialValues, onError, onSubmit, resetB
33
33
  const reset = () => {
34
34
  setRootError(null);
35
35
  setErrors({});
36
- setValues({});
36
+ if (useInitialValuesOnReset && initialValues) {
37
+ setValues(getInitialValues(initialValues));
38
+ }
39
+ else {
40
+ setValues({});
41
+ }
37
42
  };
38
43
  const handleSubmit = (event) => {
39
44
  event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAIA,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9B,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAE1C,eAAe;AACf,QAAA,MAAM,aAAa,EAAE,KAAe,CAAC;AAErC,eAAe;AACf,QAAA,MAAM,eAAe,cAAc,CAAC;AAEpC,eAAe;AACf,QAAA,MAAM,SAAS,UAAU,CAAC;AAE1B,eAAe;AACf,QAAA,MAAM,oBAAoB,iCAAiC,CAAC;AAE5D;;;;;GAKG;AACH,iBAAS,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CA8CjD;AAED,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAIA,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9B,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAE1C,eAAe;AACf,QAAA,MAAM,aAAa,EAAE,KAAe,CAAC;AAErC,eAAe;AACf,QAAA,MAAM,eAAe,cAAc,CAAC;AAEpC,eAAe;AACf,QAAA,MAAM,SAAS,UAAU,CAAC;AAE1B,eAAe;AACf,QAAA,MAAM,oBAAoB,iCAAiC,CAAC;AAE5D;;;;;GAKG;AACH,iBAAS,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CA2CjD;AAED,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect, useState } from 'react';
1
+ import { useEffect, useState } from 'react';
2
2
  import { isBrowser } from '../utils.js';
3
3
  /** @private */
4
4
  const DEFAULT_THEME = 'light';
@@ -52,9 +52,9 @@ function useTheme() {
52
52
  return () => observer.disconnect();
53
53
  }, []);
54
54
  // When the user wants to change the theme
55
- const updateTheme = useCallback((theme) => {
55
+ const updateTheme = (theme) => {
56
56
  document.documentElement.setAttribute(THEME_ATTRIBUTE, theme);
57
- }, [document.documentElement]);
57
+ };
58
58
  return [theme, updateTheme];
59
59
  }
60
60
  export { DEFAULT_THEME, SYS_DARK_MEDIA_QUERY, THEME_ATTRIBUTE, THEME_KEY, useTheme };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@douglasneuroinformatics/libui",
3
3
  "type": "module",
4
- "version": "2.4.1",
4
+ "version": "2.4.3",
5
5
  "packageManager": "pnpm@8.15.3",
6
6
  "description": "Generic UI components for DNP projects, built using React and TailwindCSS",
7
7
  "author": {
@@ -30,6 +30,7 @@ type FormProps<TSchema extends z.ZodType<FormDataType>, TData extends z.TypeOf<T
30
30
  onSubmit: (data: TData) => void;
31
31
  resetBtn?: boolean;
32
32
  submitBtnLabel?: string;
33
+ useInitialValuesOnReset?: boolean;
33
34
  validationSchema: z.ZodType<TData>;
34
35
  };
35
36
 
@@ -42,6 +43,7 @@ const Form = <TSchema extends z.ZodType<FormDataType>, TData extends z.TypeOf<TS
42
43
  onSubmit,
43
44
  resetBtn,
44
45
  submitBtnLabel,
46
+ useInitialValuesOnReset,
45
47
  validationSchema,
46
48
  ...props
47
49
  }: FormProps<TSchema, TData>) => {
@@ -72,7 +74,11 @@ const Form = <TSchema extends z.ZodType<FormDataType>, TData extends z.TypeOf<TS
72
74
  const reset = () => {
73
75
  setRootError(null);
74
76
  setErrors({});
75
- setValues({});
77
+ if (useInitialValuesOnReset && initialValues) {
78
+ setValues(getInitialValues(initialValues));
79
+ } else {
80
+ setValues({});
81
+ }
76
82
  };
77
83
 
78
84
  const handleSubmit: React.FormEventHandler<HTMLFormElement> = (event) => {
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect, useState } from 'react';
1
+ import { useEffect, useState } from 'react';
2
2
 
3
3
  import { isBrowser } from '../utils.js';
4
4
 
@@ -62,12 +62,9 @@ function useTheme(): readonly [Theme, UpdateTheme] {
62
62
  }, []);
63
63
 
64
64
  // When the user wants to change the theme
65
- const updateTheme = useCallback(
66
- (theme: Theme) => {
67
- document.documentElement.setAttribute(THEME_ATTRIBUTE, theme);
68
- },
69
- [document.documentElement]
70
- );
65
+ const updateTheme = (theme: Theme) => {
66
+ document.documentElement.setAttribute(THEME_ATTRIBUTE, theme);
67
+ };
71
68
 
72
69
  return [theme, updateTheme] as const;
73
70
  }