@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.
- package/dist/index.d.mts +49 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +28 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +58 -0
package/dist/index.d.mts
ADDED
|
@@ -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.d.ts
ADDED
|
@@ -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
|
+
}
|