@usefy/use-toggle 0.0.2

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.
@@ -0,0 +1,49 @@
1
+ /**
2
+ * useToggle return type
3
+ */
4
+ interface UseToggleReturn {
5
+ /**
6
+ * Current toggle state
7
+ */
8
+ value: boolean;
9
+ /**
10
+ * Toggle the current state
11
+ */
12
+ toggle: () => void;
13
+ /**
14
+ * Set state to true
15
+ */
16
+ setTrue: () => void;
17
+ /**
18
+ * Set state to false
19
+ */
20
+ setFalse: () => void;
21
+ /**
22
+ * Set state to a specific value
23
+ */
24
+ setValue: (value: boolean) => void;
25
+ }
26
+ /**
27
+ * A hook for managing boolean state with helpful utilities
28
+ *
29
+ * @param initialValue - Initial boolean value (default: false)
30
+ * @returns Object containing the current value and control functions
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * function Modal() {
35
+ * const { value: isOpen, toggle, setTrue, setFalse } = useToggle(false);
36
+ *
37
+ * return (
38
+ * <>
39
+ * <button onClick={setTrue}>Open</button>
40
+ * <button onClick={toggle}>Toggle</button>
41
+ * {isOpen && <div>Modal Content</div>}
42
+ * </>
43
+ * );
44
+ * }
45
+ * ```
46
+ */
47
+ declare function useToggle(initialValue?: boolean): UseToggleReturn;
48
+
49
+ export { type UseToggleReturn, useToggle };
@@ -0,0 +1,49 @@
1
+ /**
2
+ * useToggle return type
3
+ */
4
+ interface UseToggleReturn {
5
+ /**
6
+ * Current toggle state
7
+ */
8
+ value: boolean;
9
+ /**
10
+ * Toggle the current state
11
+ */
12
+ toggle: () => void;
13
+ /**
14
+ * Set state to true
15
+ */
16
+ setTrue: () => void;
17
+ /**
18
+ * Set state to false
19
+ */
20
+ setFalse: () => void;
21
+ /**
22
+ * Set state to a specific value
23
+ */
24
+ setValue: (value: boolean) => void;
25
+ }
26
+ /**
27
+ * A hook for managing boolean state with helpful utilities
28
+ *
29
+ * @param initialValue - Initial boolean value (default: false)
30
+ * @returns Object containing the current value and control functions
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * function Modal() {
35
+ * const { value: isOpen, toggle, setTrue, setFalse } = useToggle(false);
36
+ *
37
+ * return (
38
+ * <>
39
+ * <button onClick={setTrue}>Open</button>
40
+ * <button onClick={toggle}>Toggle</button>
41
+ * {isOpen && <div>Modal Content</div>}
42
+ * </>
43
+ * );
44
+ * }
45
+ * ```
46
+ */
47
+ declare function useToggle(initialValue?: boolean): UseToggleReturn;
48
+
49
+ export { type UseToggleReturn, useToggle };
package/dist/index.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ useToggle: () => useToggle
24
+ });
25
+ module.exports = __toCommonJS(index_exports);
26
+
27
+ // src/useToggle.ts
28
+ var import_react = require("react");
29
+ function useToggle(initialValue = false) {
30
+ const [value, setValue] = (0, import_react.useState)(initialValue);
31
+ const toggle = (0, import_react.useCallback)(() => {
32
+ setValue((prev) => !prev);
33
+ }, []);
34
+ const setTrue = (0, import_react.useCallback)(() => {
35
+ setValue(true);
36
+ }, []);
37
+ const setFalse = (0, import_react.useCallback)(() => {
38
+ setValue(false);
39
+ }, []);
40
+ const setValueCallback = (0, import_react.useCallback)((newValue) => {
41
+ setValue(newValue);
42
+ }, []);
43
+ return {
44
+ value,
45
+ toggle,
46
+ setTrue,
47
+ setFalse,
48
+ setValue: setValueCallback
49
+ };
50
+ }
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ useToggle
54
+ });
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/useToggle.ts"],"sourcesContent":["export { useToggle, type UseToggleReturn } from \"./useToggle\";\r\n","import { useCallback, useState } from \"react\";\r\n\r\n/**\r\n * useToggle return type\r\n */\r\nexport interface UseToggleReturn {\r\n /**\r\n * Current toggle state\r\n */\r\n value: boolean;\r\n /**\r\n * Toggle the current state\r\n */\r\n toggle: () => void;\r\n /**\r\n * Set state to true\r\n */\r\n setTrue: () => void;\r\n /**\r\n * Set state to false\r\n */\r\n setFalse: () => void;\r\n /**\r\n * Set state to a specific value\r\n */\r\n setValue: (value: boolean) => void;\r\n}\r\n\r\n/**\r\n * A hook for managing boolean state with helpful utilities\r\n *\r\n * @param initialValue - Initial boolean value (default: false)\r\n * @returns Object containing the current value and control functions\r\n *\r\n * @example\r\n * ```tsx\r\n * function Modal() {\r\n * const { value: isOpen, toggle, setTrue, setFalse } = useToggle(false);\r\n *\r\n * return (\r\n * <>\r\n * <button onClick={setTrue}>Open</button>\r\n * <button onClick={toggle}>Toggle</button>\r\n * {isOpen && <div>Modal Content</div>}\r\n * </>\r\n * );\r\n * }\r\n * ```\r\n */\r\nexport function useToggle(initialValue: boolean = false): UseToggleReturn {\r\n const [value, setValue] = useState<boolean>(initialValue);\r\n\r\n const toggle = useCallback(() => {\r\n setValue((prev) => !prev);\r\n }, []);\r\n\r\n const setTrue = useCallback(() => {\r\n setValue(true);\r\n }, []);\r\n\r\n const setFalse = useCallback(() => {\r\n setValue(false);\r\n }, []);\r\n\r\n const setValueCallback = useCallback((newValue: boolean) => {\r\n setValue(newValue);\r\n }, []);\r\n\r\n return {\r\n value,\r\n toggle,\r\n setTrue,\r\n setFalse,\r\n setValue: setValueCallback,\r\n };\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAsC;AAiD/B,SAAS,UAAU,eAAwB,OAAwB;AACxE,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAkB,YAAY;AAExD,QAAM,aAAS,0BAAY,MAAM;AAC/B,aAAS,CAAC,SAAS,CAAC,IAAI;AAAA,EAC1B,GAAG,CAAC,CAAC;AAEL,QAAM,cAAU,0BAAY,MAAM;AAChC,aAAS,IAAI;AAAA,EACf,GAAG,CAAC,CAAC;AAEL,QAAM,eAAW,0BAAY,MAAM;AACjC,aAAS,KAAK;AAAA,EAChB,GAAG,CAAC,CAAC;AAEL,QAAM,uBAAmB,0BAAY,CAAC,aAAsB;AAC1D,aAAS,QAAQ;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;","names":[]}
package/dist/index.mjs ADDED
@@ -0,0 +1,28 @@
1
+ // src/useToggle.ts
2
+ import { useCallback, useState } from "react";
3
+ function useToggle(initialValue = false) {
4
+ const [value, setValue] = useState(initialValue);
5
+ const toggle = useCallback(() => {
6
+ setValue((prev) => !prev);
7
+ }, []);
8
+ const setTrue = useCallback(() => {
9
+ setValue(true);
10
+ }, []);
11
+ const setFalse = useCallback(() => {
12
+ setValue(false);
13
+ }, []);
14
+ const setValueCallback = useCallback((newValue) => {
15
+ setValue(newValue);
16
+ }, []);
17
+ return {
18
+ value,
19
+ toggle,
20
+ setTrue,
21
+ setFalse,
22
+ setValue: setValueCallback
23
+ };
24
+ }
25
+ export {
26
+ useToggle
27
+ };
28
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/useToggle.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\r\n\r\n/**\r\n * useToggle return type\r\n */\r\nexport interface UseToggleReturn {\r\n /**\r\n * Current toggle state\r\n */\r\n value: boolean;\r\n /**\r\n * Toggle the current state\r\n */\r\n toggle: () => void;\r\n /**\r\n * Set state to true\r\n */\r\n setTrue: () => void;\r\n /**\r\n * Set state to false\r\n */\r\n setFalse: () => void;\r\n /**\r\n * Set state to a specific value\r\n */\r\n setValue: (value: boolean) => void;\r\n}\r\n\r\n/**\r\n * A hook for managing boolean state with helpful utilities\r\n *\r\n * @param initialValue - Initial boolean value (default: false)\r\n * @returns Object containing the current value and control functions\r\n *\r\n * @example\r\n * ```tsx\r\n * function Modal() {\r\n * const { value: isOpen, toggle, setTrue, setFalse } = useToggle(false);\r\n *\r\n * return (\r\n * <>\r\n * <button onClick={setTrue}>Open</button>\r\n * <button onClick={toggle}>Toggle</button>\r\n * {isOpen && <div>Modal Content</div>}\r\n * </>\r\n * );\r\n * }\r\n * ```\r\n */\r\nexport function useToggle(initialValue: boolean = false): UseToggleReturn {\r\n const [value, setValue] = useState<boolean>(initialValue);\r\n\r\n const toggle = useCallback(() => {\r\n setValue((prev) => !prev);\r\n }, []);\r\n\r\n const setTrue = useCallback(() => {\r\n setValue(true);\r\n }, []);\r\n\r\n const setFalse = useCallback(() => {\r\n setValue(false);\r\n }, []);\r\n\r\n const setValueCallback = useCallback((newValue: boolean) => {\r\n setValue(newValue);\r\n }, []);\r\n\r\n return {\r\n value,\r\n toggle,\r\n setTrue,\r\n setFalse,\r\n setValue: setValueCallback,\r\n };\r\n}\r\n"],"mappings":";AAAA,SAAS,aAAa,gBAAgB;AAiD/B,SAAS,UAAU,eAAwB,OAAwB;AACxE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAkB,YAAY;AAExD,QAAM,SAAS,YAAY,MAAM;AAC/B,aAAS,CAAC,SAAS,CAAC,IAAI;AAAA,EAC1B,GAAG,CAAC,CAAC;AAEL,QAAM,UAAU,YAAY,MAAM;AAChC,aAAS,IAAI;AAAA,EACf,GAAG,CAAC,CAAC;AAEL,QAAM,WAAW,YAAY,MAAM;AACjC,aAAS,KAAK;AAAA,EAChB,GAAG,CAAC,CAAC;AAEL,QAAM,mBAAmB,YAAY,CAAC,aAAsB;AAC1D,aAAS,QAAQ;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;","names":[]}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@usefy/use-toggle",
3
+ "version": "0.0.2",
4
+ "description": "A React hook for boolean state management",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "sideEffects": false,
19
+ "peerDependencies": {
20
+ "react": "^18.0.0 || ^19.0.0"
21
+ },
22
+ "devDependencies": {
23
+ "@testing-library/jest-dom": "^6.9.1",
24
+ "@testing-library/react": "^16.3.1",
25
+ "@testing-library/user-event": "^14.6.1",
26
+ "@types/react": "^19.0.0",
27
+ "jsdom": "^27.3.0",
28
+ "react": "^19.0.0",
29
+ "rimraf": "^6.0.1",
30
+ "tsup": "^8.0.0",
31
+ "typescript": "^5.0.0",
32
+ "vitest": "^4.0.16"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/geon0529/usefy.git",
40
+ "directory": "packages/use-toggle"
41
+ },
42
+ "license": "MIT",
43
+ "keywords": [
44
+ "react",
45
+ "hooks",
46
+ "toggle",
47
+ "boolean",
48
+ "state"
49
+ ],
50
+ "scripts": {
51
+ "build": "tsup",
52
+ "dev": "tsup --watch",
53
+ "test": "vitest run",
54
+ "test:watch": "vitest",
55
+ "typecheck": "tsc --noEmit",
56
+ "clean": "rimraf dist"
57
+ }
58
+ }