@mantine/hooks 4.2.4 → 5.0.0-alpha.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.
Files changed (54) hide show
  1. package/cjs/index.js +4 -3
  2. package/cjs/index.js.map +1 -1
  3. package/cjs/use-counter/use-counter.js +47 -0
  4. package/cjs/use-counter/use-counter.js.map +1 -0
  5. package/cjs/use-document-visibility/use-document-visibility.js +23 -0
  6. package/cjs/use-document-visibility/use-document-visibility.js.map +1 -0
  7. package/cjs/use-list-state/use-list-state.js +22 -51
  8. package/cjs/use-list-state/use-list-state.js.map +1 -1
  9. package/cjs/use-local-storage/use-local-storage.js +0 -2
  10. package/cjs/use-local-storage/use-local-storage.js.map +1 -1
  11. package/cjs/use-merged-ref/use-merged-ref.js +3 -5
  12. package/cjs/use-merged-ref/use-merged-ref.js.map +1 -1
  13. package/cjs/use-network/use-network.js +5 -9
  14. package/cjs/use-network/use-network.js.map +1 -1
  15. package/cjs/utils/shallow-equal/shallow-equal.js +7 -5
  16. package/cjs/utils/shallow-equal/shallow-equal.js.map +1 -1
  17. package/esm/index.js +3 -2
  18. package/esm/index.js.map +1 -1
  19. package/esm/use-counter/use-counter.js +43 -0
  20. package/esm/use-counter/use-counter.js.map +1 -0
  21. package/esm/use-document-visibility/use-document-visibility.js +19 -0
  22. package/esm/use-document-visibility/use-document-visibility.js.map +1 -0
  23. package/esm/use-list-state/use-list-state.js +22 -51
  24. package/esm/use-list-state/use-list-state.js.map +1 -1
  25. package/esm/use-local-storage/use-local-storage.js +1 -2
  26. package/esm/use-local-storage/use-local-storage.js.map +1 -1
  27. package/esm/use-merged-ref/use-merged-ref.js +3 -5
  28. package/esm/use-merged-ref/use-merged-ref.js.map +1 -1
  29. package/esm/use-network/use-network.js +5 -9
  30. package/esm/use-network/use-network.js.map +1 -1
  31. package/esm/utils/shallow-equal/shallow-equal.js +7 -5
  32. package/esm/utils/shallow-equal/shallow-equal.js.map +1 -1
  33. package/lib/index.d.ts +3 -2
  34. package/lib/index.d.ts.map +1 -1
  35. package/lib/use-counter/use-counter.d.ts +10 -0
  36. package/lib/use-counter/use-counter.d.ts.map +1 -0
  37. package/lib/use-document-visibility/use-document-visibility.d.ts +2 -0
  38. package/lib/use-document-visibility/use-document-visibility.d.ts.map +1 -0
  39. package/lib/use-list-state/use-list-state.d.ts +11 -11
  40. package/lib/use-list-state/use-list-state.d.ts.map +1 -1
  41. package/lib/use-local-storage/use-local-storage.d.ts +0 -1
  42. package/lib/use-local-storage/use-local-storage.d.ts.map +1 -1
  43. package/lib/use-merged-ref/use-merged-ref.d.ts +1 -1
  44. package/lib/use-merged-ref/use-merged-ref.d.ts.map +1 -1
  45. package/lib/use-network/use-network.d.ts +6 -4
  46. package/lib/use-network/use-network.d.ts.map +1 -1
  47. package/lib/utils/shallow-equal/shallow-equal.d.ts.map +1 -1
  48. package/package.json +1 -1
  49. package/cjs/use-form/use-form.js +0 -91
  50. package/cjs/use-form/use-form.js.map +0 -1
  51. package/esm/use-form/use-form.js +0 -87
  52. package/esm/use-form/use-form.js.map +0 -1
  53. package/lib/use-form/use-form.d.ts +0 -37
  54. package/lib/use-form/use-form.d.ts.map +0 -1
@@ -1,87 +0,0 @@
1
- import { useState } from 'react';
2
- import { getInputOnChange } from '../use-input-state/use-input-state.js';
3
-
4
- var __defProp = Object.defineProperty;
5
- var __defProps = Object.defineProperties;
6
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
- var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
- var __spreadValues = (a, b) => {
12
- for (var prop in b || (b = {}))
13
- if (__hasOwnProp.call(b, prop))
14
- __defNormalProp(a, prop, b[prop]);
15
- if (__getOwnPropSymbols)
16
- for (var prop of __getOwnPropSymbols(b)) {
17
- if (__propIsEnum.call(b, prop))
18
- __defNormalProp(a, prop, b[prop]);
19
- }
20
- return a;
21
- };
22
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
- function useForm({
24
- initialValues,
25
- validationRules = {},
26
- errorMessages = {}
27
- }) {
28
- const initialErrors = Object.keys(initialValues).reduce((acc, field) => {
29
- acc[field] = null;
30
- return acc;
31
- }, {});
32
- const [errors, setErrors] = useState(initialErrors);
33
- const [values, setValues] = useState(initialValues);
34
- const resetErrors = () => setErrors(initialErrors);
35
- const reset = () => {
36
- setValues(initialValues);
37
- resetErrors();
38
- };
39
- const validate = () => {
40
- let isValid = true;
41
- const validationErrors = Object.keys(values).reduce((acc, field) => {
42
- if (validationRules && typeof validationRules[field] === "function" && !validationRules[field](values[field], values)) {
43
- acc[field] = errorMessages[field] || true;
44
- isValid = false;
45
- } else {
46
- acc[field] = null;
47
- }
48
- return acc;
49
- }, {});
50
- setErrors(validationErrors);
51
- return isValid;
52
- };
53
- const validateField = (field) => setErrors((currentErrors) => __spreadProps(__spreadValues({}, currentErrors), {
54
- [field]: typeof validationRules[field] === "function" ? validationRules[field](values[field], values) ? null : errorMessages[field] || true : null
55
- }));
56
- const setFieldError = (field, error) => setErrors((currentErrors) => __spreadProps(__spreadValues({}, currentErrors), { [field]: error }));
57
- const setFieldValue = (field, value) => {
58
- setValues((currentValues) => __spreadProps(__spreadValues({}, currentValues), { [field]: value }));
59
- setFieldError(field, null);
60
- };
61
- const onSubmit = (handleSubmit) => (event) => {
62
- event && event.preventDefault();
63
- validate() && handleSubmit(values);
64
- };
65
- const getInputProps = (field, options) => ({
66
- [(options == null ? void 0 : options.type) === "checkbox" ? "checked" : "value"]: values[field],
67
- onChange: getInputOnChange((val) => setFieldValue(field, val)),
68
- error: errors[field] || void 0
69
- });
70
- return {
71
- values,
72
- errors,
73
- validate,
74
- reset,
75
- setErrors,
76
- setValues,
77
- setFieldValue,
78
- setFieldError,
79
- validateField,
80
- resetErrors,
81
- onSubmit,
82
- getInputProps
83
- };
84
- }
85
-
86
- export { useForm };
87
- //# sourceMappingURL=use-form.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-form.js","sources":["../../src/use-form/use-form.ts"],"sourcesContent":["import React, { useState } from 'react';\nimport { getInputOnChange } from '../use-input-state/use-input-state';\n\nexport type ValidationRule<T> = {\n readonly [P in keyof T]?: (value: T[P], values?: T) => boolean;\n};\n\nexport type UseFormErrors<T> = {\n readonly [P in keyof T]?: React.ReactNode | null;\n};\n\ninterface UseFormInput<T> {\n validationRules?: ValidationRule<T>;\n errorMessages?: UseFormErrors<T>;\n initialValues: T;\n}\n\nexport interface UseForm<T> {\n values: T;\n errors: Record<keyof T, React.ReactNode>;\n validate: () => boolean;\n reset: () => void;\n setErrors: React.Dispatch<React.SetStateAction<Record<keyof T, React.ReactNode>>>;\n setValues: React.Dispatch<React.SetStateAction<T>>;\n setFieldValue: <K extends keyof T, U extends T[K]>(field: K, value: U) => void;\n setFieldError: (field: keyof T, error: React.ReactNode) => void;\n validateField: (field: keyof T) => void;\n resetErrors: () => void;\n onSubmit: (handleSubmit: (values: T) => any) => (event?: React.FormEvent) => void;\n getInputProps: <K extends keyof T>(\n field: K,\n options?: {\n type?: 'checkbox' | 'default';\n }\n ) => {\n [x: string]: any;\n onChange: any;\n error: Record<keyof T, React.ReactNode>[K];\n };\n}\n\nexport function useForm<T extends { [key: string]: any }>({\n initialValues,\n validationRules = {},\n errorMessages = {},\n}: UseFormInput<T>): UseForm<T> {\n type ValidationErrors = Record<keyof T, React.ReactNode>;\n\n const initialErrors = Object.keys(initialValues).reduce((acc, field) => {\n acc[field as keyof T] = null;\n return acc;\n }, {} as ValidationErrors);\n\n const [errors, setErrors] = useState(initialErrors);\n const [values, setValues] = useState(initialValues);\n\n const resetErrors = () => setErrors(initialErrors);\n\n const reset = () => {\n setValues(initialValues);\n resetErrors();\n };\n\n const validate = () => {\n let isValid = true;\n\n const validationErrors = Object.keys(values).reduce((acc, field) => {\n if (\n validationRules &&\n typeof validationRules[field] === 'function' &&\n !validationRules[field](values[field], values)\n ) {\n acc[field as keyof T] = errorMessages[field] || true;\n isValid = false;\n } else {\n acc[field as keyof T] = null;\n }\n\n return acc;\n }, {} as ValidationErrors);\n\n setErrors(validationErrors);\n return isValid;\n };\n\n const validateField = (field: keyof T) =>\n setErrors((currentErrors) => ({\n ...currentErrors,\n [field]:\n typeof validationRules[field] === 'function'\n ? validationRules[field](values[field], values)\n ? null\n : errorMessages[field] || true\n : null,\n }));\n\n const setFieldError = (field: keyof T, error: React.ReactNode) =>\n setErrors((currentErrors) => ({ ...currentErrors, [field]: error }));\n\n const setFieldValue = <K extends keyof T, U extends T[K]>(field: K, value: U) => {\n setValues((currentValues) => ({ ...currentValues, [field]: value }));\n setFieldError(field, null);\n };\n\n const onSubmit = (handleSubmit: (values: T) => any) => (event?: React.FormEvent) => {\n event && event.preventDefault();\n validate() && handleSubmit(values);\n };\n\n const getInputProps = <K extends keyof T, U extends T[K]>(\n field: K,\n options?: { type?: 'checkbox' | 'default' }\n ) => ({\n [options?.type === 'checkbox' ? 'checked' : 'value']: values[field],\n onChange: getInputOnChange<U>((val: U) => setFieldValue(field, val)) as any,\n error: errors[field] || undefined,\n });\n\n return {\n values,\n errors,\n validate,\n reset,\n setErrors,\n setValues,\n setFieldValue,\n setFieldError,\n validateField,\n resetErrors,\n onSubmit,\n getInputProps,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- import React from 'react';
2
- export declare type ValidationRule<T> = {
3
- readonly [P in keyof T]?: (value: T[P], values?: T) => boolean;
4
- };
5
- export declare type UseFormErrors<T> = {
6
- readonly [P in keyof T]?: React.ReactNode | null;
7
- };
8
- interface UseFormInput<T> {
9
- validationRules?: ValidationRule<T>;
10
- errorMessages?: UseFormErrors<T>;
11
- initialValues: T;
12
- }
13
- export interface UseForm<T> {
14
- values: T;
15
- errors: Record<keyof T, React.ReactNode>;
16
- validate: () => boolean;
17
- reset: () => void;
18
- setErrors: React.Dispatch<React.SetStateAction<Record<keyof T, React.ReactNode>>>;
19
- setValues: React.Dispatch<React.SetStateAction<T>>;
20
- setFieldValue: <K extends keyof T, U extends T[K]>(field: K, value: U) => void;
21
- setFieldError: (field: keyof T, error: React.ReactNode) => void;
22
- validateField: (field: keyof T) => void;
23
- resetErrors: () => void;
24
- onSubmit: (handleSubmit: (values: T) => any) => (event?: React.FormEvent) => void;
25
- getInputProps: <K extends keyof T>(field: K, options?: {
26
- type?: 'checkbox' | 'default';
27
- }) => {
28
- [x: string]: any;
29
- onChange: any;
30
- error: Record<keyof T, React.ReactNode>[K];
31
- };
32
- }
33
- export declare function useForm<T extends {
34
- [key: string]: any;
35
- }>({ initialValues, validationRules, errorMessages, }: UseFormInput<T>): UseForm<T>;
36
- export {};
37
- //# sourceMappingURL=use-form.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["../../src/use-form/use-form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,oBAAY,cAAc,CAAC,CAAC,IAAI;IAC9B,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,OAAO;CAC/D,CAAC;AAEF,oBAAY,aAAa,CAAC,CAAC,IAAI;IAC7B,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;CACjD,CAAC;AAEF,UAAU,YAAY,CAAC,CAAC;IACtB,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,aAAa,EAAE,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC;IACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClF,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,aAAa,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/E,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAChE,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAClF,aAAa,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAC/B,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;KAC/B,KACE;QACH,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;QACjB,QAAQ,EAAE,GAAG,CAAC;QACd,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5C,CAAC;CACH;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,EACxD,aAAa,EACb,eAAoB,EACpB,aAAkB,GACnB,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAuF9B"}