@mysetup/hooks 1.0.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.
Files changed (61) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +17 -0
  4. package/dist/src/index.d.ts +8 -0
  5. package/dist/src/index.d.ts.map +1 -0
  6. package/dist/src/index.js +23 -0
  7. package/dist/src/useBreakpoint/index.d.ts +2 -0
  8. package/dist/src/useBreakpoint/index.d.ts.map +1 -0
  9. package/dist/src/useBreakpoint/index.js +17 -0
  10. package/dist/src/useBreakpoint/useBreakpoint.d.ts +2 -0
  11. package/dist/src/useBreakpoint/useBreakpoint.d.ts.map +1 -0
  12. package/dist/src/useBreakpoint/useBreakpoint.js +41 -0
  13. package/dist/src/useDebounce/index.d.ts +2 -0
  14. package/dist/src/useDebounce/index.d.ts.map +1 -0
  15. package/dist/src/useDebounce/index.js +17 -0
  16. package/dist/src/useDebounce/useDebounce.d.ts +2 -0
  17. package/dist/src/useDebounce/useDebounce.d.ts.map +1 -0
  18. package/dist/src/useDebounce/useDebounce.js +16 -0
  19. package/dist/src/useForm/helpers.d.ts +12 -0
  20. package/dist/src/useForm/helpers.d.ts.map +1 -0
  21. package/dist/src/useForm/helpers.js +84 -0
  22. package/dist/src/useForm/index.d.ts +3 -0
  23. package/dist/src/useForm/index.d.ts.map +1 -0
  24. package/dist/src/useForm/index.js +18 -0
  25. package/dist/src/useForm/rulesList.d.ts +3 -0
  26. package/dist/src/useForm/rulesList.d.ts.map +1 -0
  27. package/dist/src/useForm/rulesList.js +102 -0
  28. package/dist/src/useForm/types.d.ts +45 -0
  29. package/dist/src/useForm/types.d.ts.map +1 -0
  30. package/dist/src/useForm/types.js +15 -0
  31. package/dist/src/useForm/useForm.d.ts +28 -0
  32. package/dist/src/useForm/useForm.d.ts.map +1 -0
  33. package/dist/src/useForm/useForm.js +301 -0
  34. package/dist/src/useForm/useFormArray.d.ts +28 -0
  35. package/dist/src/useForm/useFormArray.d.ts.map +1 -0
  36. package/dist/src/useForm/useFormArray.js +329 -0
  37. package/dist/src/useFormatPhoneNumber/index.d.ts +2 -0
  38. package/dist/src/useFormatPhoneNumber/index.d.ts.map +1 -0
  39. package/dist/src/useFormatPhoneNumber/index.js +17 -0
  40. package/dist/src/useFormatPhoneNumber/useFormatPhoneNumber.d.ts +2 -0
  41. package/dist/src/useFormatPhoneNumber/useFormatPhoneNumber.d.ts.map +1 -0
  42. package/dist/src/useFormatPhoneNumber/useFormatPhoneNumber.js +18 -0
  43. package/dist/src/useIsBreakpoint/index.d.ts +2 -0
  44. package/dist/src/useIsBreakpoint/index.d.ts.map +1 -0
  45. package/dist/src/useIsBreakpoint/index.js +17 -0
  46. package/dist/src/useIsBreakpoint/useIsBreakpoint.d.ts +3 -0
  47. package/dist/src/useIsBreakpoint/useIsBreakpoint.d.ts.map +1 -0
  48. package/dist/src/useIsBreakpoint/useIsBreakpoint.js +15 -0
  49. package/dist/src/useModal/index.d.ts +2 -0
  50. package/dist/src/useModal/index.d.ts.map +1 -0
  51. package/dist/src/useModal/index.js +17 -0
  52. package/dist/src/useModal/useModal.d.ts +6 -0
  53. package/dist/src/useModal/useModal.d.ts.map +1 -0
  54. package/dist/src/useModal/useModal.js +19 -0
  55. package/dist/src/useTouchEndFix/index.d.ts +2 -0
  56. package/dist/src/useTouchEndFix/index.d.ts.map +1 -0
  57. package/dist/src/useTouchEndFix/index.js +17 -0
  58. package/dist/src/useTouchEndFix/useTouchEndFix.d.ts +2 -0
  59. package/dist/src/useTouchEndFix/useTouchEndFix.d.ts.map +1 -0
  60. package/dist/src/useTouchEndFix/useTouchEndFix.js +34 -0
  61. package/package.json +54 -0
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useFormatPhoneNumber"), exports);
@@ -0,0 +1,2 @@
1
+ export declare const formatPhoneNumberValue: (value: string) => string;
2
+ //# sourceMappingURL=useFormatPhoneNumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormatPhoneNumber.d.ts","sourceRoot":"","sources":["../../../src/useFormatPhoneNumber/useFormatPhoneNumber.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,UAAW,MAAM,WAanD,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatPhoneNumberValue = void 0;
4
+ var formatPhoneNumberValue = function (value) {
5
+ var phoneNumber = value.replace(/\D/g, "");
6
+ var size = phoneNumber.length;
7
+ if (size > 0) {
8
+ phoneNumber = "(".concat(phoneNumber);
9
+ }
10
+ if (size > 3) {
11
+ phoneNumber = "".concat(phoneNumber.slice(0, 4), ") ").concat(phoneNumber.slice(4, 11));
12
+ }
13
+ if (size > 6) {
14
+ phoneNumber = "".concat(phoneNumber.slice(0, 9), "-").concat(phoneNumber.slice(9));
15
+ }
16
+ return phoneNumber;
17
+ };
18
+ exports.formatPhoneNumberValue = formatPhoneNumberValue;
@@ -0,0 +1,2 @@
1
+ export * from "./useIsBreakpoint";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/useIsBreakpoint/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useIsBreakpoint"), exports);
@@ -0,0 +1,3 @@
1
+ import type { Breakpoint } from "@mysetup/types";
2
+ export declare function useIsBreakpoint(...breakpoints: Breakpoint[]): boolean;
3
+ //# sourceMappingURL=useIsBreakpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsBreakpoint.d.ts","sourceRoot":"","sources":["../../../src/useIsBreakpoint/useIsBreakpoint.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,wBAAgB,eAAe,CAAC,GAAG,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAQrE"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useIsBreakpoint = useIsBreakpoint;
4
+ var useBreakpoint_1 = require("../useBreakpoint");
5
+ function useIsBreakpoint() {
6
+ var breakpoints = [];
7
+ for (var _i = 0; _i < arguments.length; _i++) {
8
+ breakpoints[_i] = arguments[_i];
9
+ }
10
+ var breakpoint = (0, useBreakpoint_1.useBreakpoint)();
11
+ if (!breakpoint) {
12
+ return false;
13
+ }
14
+ return breakpoints.includes(breakpoint);
15
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./useModal";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/useModal/index.tsx"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useModal"), exports);
@@ -0,0 +1,6 @@
1
+ export declare const useModal: () => {
2
+ isOpen: boolean;
3
+ toggleModal: () => void;
4
+ close: () => void;
5
+ };
6
+ //# sourceMappingURL=useModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useModal.d.ts","sourceRoot":"","sources":["../../../src/useModal/useModal.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;CAgBpB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useModal = void 0;
4
+ var react_1 = require("react");
5
+ var useModal = function () {
6
+ var _a = (0, react_1.useState)(false), isOpen = _a[0], setIsOpen = _a[1];
7
+ var toggleModal = function () {
8
+ setIsOpen(!isOpen);
9
+ };
10
+ var close = function () {
11
+ setIsOpen(false);
12
+ };
13
+ return {
14
+ isOpen: isOpen,
15
+ toggleModal: toggleModal,
16
+ close: close,
17
+ };
18
+ };
19
+ exports.useModal = useModal;
@@ -0,0 +1,2 @@
1
+ export * from "./useTouchEndFix";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/useTouchEndFix/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useTouchEndFix"), exports);
@@ -0,0 +1,2 @@
1
+ export declare function useTouchEndFix(elem: HTMLElement | null): void;
2
+ //# sourceMappingURL=useTouchEndFix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTouchEndFix.d.ts","sourceRoot":"","sources":["../../../src/useTouchEndFix/useTouchEndFix.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,QAqCtD"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTouchEndFix = useTouchEndFix;
4
+ var react_1 = require("react");
5
+ function useTouchEndFix(elem) {
6
+ (0, react_1.useEffect)(function () {
7
+ elem === null || elem === void 0 ? void 0 : elem.addEventListener("touchend", function (e) {
8
+ /**
9
+ * Bug with touch events not being prevented appropriately.
10
+ *
11
+ * Github discussion: https://github.com/adobe/react-spectrum/issues/1513
12
+ *
13
+ * The first condition is necessary to avoid the issue that a button with
14
+ * type="submit" inside a <form> would not trigger the form submit
15
+ * event on a device with touch input.
16
+ *
17
+ * The second condition is needed for thse buttons that are links
18
+ * underneath and will have a href. If "touchend" is prevented, links
19
+ * won't open by touch.
20
+ *
21
+ * Admittedly, this is an ugly patch, but given the react-spectrum
22
+ * issue it seems necessary. If this hook grows any larger after
23
+ * further bug reports and edge cases, we may want to reconsider
24
+ * this approach.
25
+ */
26
+ if (e.currentTarget.getAttribute("type") !==
27
+ "submit" &&
28
+ typeof e.currentTarget.getAttribute("href") !== "string" &&
29
+ !e.currentTarget.getAttribute("data-modal")) {
30
+ e.preventDefault();
31
+ }
32
+ }, { passive: false });
33
+ }, [elem]);
34
+ }
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@mysetup/hooks",
3
+ "version": "1.0.0",
4
+ "license": "MIT",
5
+ "main": "dist/index.js",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.js"
14
+ },
15
+ "./package.json": "./package.json"
16
+ },
17
+ "scripts": {
18
+ "build": "rm -rf ./dist && tsc -p tsconfig.build.json",
19
+ "lint": "eslint .",
20
+ "test": "jest",
21
+ "test:update": "pnpm test -- -u",
22
+ "test:coverage": "jest --coverage",
23
+ "typecheck": "tsc --noEmit",
24
+ "format": "prettier --write \"**/*.{ts,tsx,md,js,mjs,json}\"",
25
+ "checks": "pnpm typecheck && pnpm lint && pnpm test",
26
+ "clean": "rm -rf node_modules .swc dist pnpm-lock.yaml && echo \"✅ Successfully removed \""
27
+ },
28
+ "dependencies": {
29
+ "@mysetup/classnames": "latest",
30
+ "@mysetup/types": "latest"
31
+ },
32
+ "devDependencies": {
33
+ "@mysetup/eslint-config": "latest",
34
+ "@mysetup/jest-config": "latest",
35
+ "@mysetup/prettier-config": "latest",
36
+ "@mysetup/test-helpers": "latest",
37
+ "@mysetup/tsconfig": "latest",
38
+ "@testing-library/react": "^16.0.1",
39
+ "@types/jest": "^29.5.14",
40
+ "@types/node": "^22.8.6",
41
+ "@types/react": "^18.3.12",
42
+ "@types/react-dom": "^18.3.1",
43
+ "eslint": "8.57.0",
44
+ "jest": "^29.7.0",
45
+ "react": "^18.3.1",
46
+ "react-dom": "^18.3.1",
47
+ "typescript": "^5.6.3"
48
+ },
49
+ "prettier": "@mysetup/prettier-config",
50
+ "engines": {
51
+ "node": ">=18.0.0"
52
+ },
53
+ "packageManager": "pnpm@9.9.0"
54
+ }