Sign In

@lubycon/react

Package Overview
Dependencies
Maintainers
1
Versions
109
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lubycon/react - npm Package Compare versions

Comparing version
1.2.0
to
1.6.4
+9
-80
package.json

@@ -5,9 +5,9 @@ {

"sideEffects": false,
"version": "1.2.0",
"version": "1.6.4",
"keywords": [
"react"
],
"main": "dist/index.js",
"module": "dist",
"typings": "dist/types/index.d.ts",
"main": "./dist/index.js",
"module": "./dist",
"typings": "./dist/types/index.d.ts",
"publishConfig": {

@@ -17,13 +17,4 @@ "access": "public"

"files": [
"dist"
"./dist"
],
"author": "Lubycon <lubycon@gmail.com>",
"repository": {
"type": "git",
"url": "https://github.com/Lubycon/lubycon-react"
},
"license": "MIT",
"engines": {
"node": ">=10.15"
},
"scripts": {

@@ -34,57 +25,6 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'",

"start": "rollup -c rollup.config.ts -w",
"test": "jest --coverage",
"test:watch": "jest --coverage --watch",
"test:prod": "npm run lint && npm run test -- --no-cache",
"report-coverage": "cat ./coverage/lcov.info | coveralls",
"commit": "git-cz",
"precommit": "lint-staged",
"copy-version": "ncp dist/package.json package.json",
"typecheck": "tsc --noEmit"
},
"lint-staged": {
"{src,test}/**/*.ts": [
"prettier --write",
"git add"
]
},
"config": {
"commitizen": {
"path": "node_modules/cz-conventional-changelog"
}
},
"jest": {
"transform": {
".(ts|tsx)": "ts-jest"
},
"testEnvironment": "node",
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js"
],
"coveragePathIgnorePatterns": [
"/node_modules/",
"/test/"
],
"coverageThreshold": {
"global": {
"branches": 90,
"functions": 95,
"lines": 95,
"statements": 95
}
},
"collectCoverageFrom": [
"src/*.{js,ts}"
]
},
"commitlint": {
"extends": [
"@commitlint/config-conventional"
]
},
"devDependencies": {
"@commitlint/cli": "^7.1.2",
"@commitlint/config-conventional": "^7.1.2",
"@semantic-release/commit-analyzer": "^8.0.1",

@@ -95,3 +35,2 @@ "@semantic-release/git": "^9.0.0",

"@semantic-release/release-notes-generator": "^9.0.2",
"@types/jest": "^23.3.2",
"@types/node": "^10.11.0",

@@ -101,17 +40,8 @@ "@types/react": "^17.0.13",

"@typescript-eslint/parser": "^4.25.0",
"@yarnpkg/pnpify": "^3.0.0-rc.10",
"colors": "^1.3.2",
"commitizen": "^3.0.0",
"coveralls": "^3.0.2",
"cross-env": "^5.2.0",
"cz-conventional-changelog": "^2.1.0",
"eslint": "^7.27.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^3.4.0",
"husky": "^1.0.1",
"jest": "^23.6.0",
"jest-config": "^23.6.0",
"lint-staged": "^8.0.0",
"ncp": "^2.0.0",
"prettier": "^2.1.2",
"prettier": "^2.3.2",
"prompt": "^1.0.0",

@@ -128,9 +58,8 @@ "replace-in-file": "^3.4.2",

"shelljs": "^0.8.3",
"ts-jest": "^23.10.2",
"ts-node": "^7.0.1",
"typescript": "^3.0.3"
"typescript": "^4.3.5"
},
"peerDependencies": {
"react": "^17.0.2"
}
},
"gitHead": "d51fd8fa1925fcf0fd33172ece35908e4b8b5bfa"
}
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var react = require('react');
/**
* setState(true)와 같은 동작을 추상화하여 setTrue, setFalse를 사용합니다.
*/
function useBooleanState(defaultValue) {
if (defaultValue === void 0) { defaultValue = false; }
var _a = react.useState(defaultValue), state = _a[0], setState = _a[1];
var setTrue = react.useCallback(function () { return setState(true); }, []);
var setFalse = react.useCallback(function () { return setState(false); }, []);
return [state, setTrue, setFalse];
}
/**
* 한 단계 이전 렌더 타이밍의 값을 반환합니다. 이전 값과 현재 값을 비교하는 상황 등에 사용할 수 있습니다.
*/
function usePreviousState(value) {
var ref = react.useRef(value);
react.useEffect(function () {
ref.current = value;
}, [value]);
return ref.current;
}
function useThrottle(callback, delay) {
var timer = react.useRef(null);
return function throttledCallback() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (!timer.current) {
timer.current = setTimeout(function () {
callback.apply(void 0, args);
timer.current = null;
}, delay);
}
};
}
function useDebounce(callback, delay) {
var argsRef = react.useRef();
var timer = react.useRef(null);
var cleanup = react.useCallback(function () {
if (timer.current)
clearTimeout(timer.current);
}, []);
var debouncedCallback = react.useCallback(function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
argsRef.current = args;
cleanup();
timer.current = setTimeout(function () {
if (argsRef.current) {
callback.apply(void 0, argsRef.current);
timer.current = null;
}
}, delay);
}, []);
return debouncedCallback;
}
exports.useBooleanState = useBooleanState;
exports.useDebounce = useDebounce;
exports.usePreviousState = usePreviousState;
exports.useThrottle = useThrottle;
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sources":["../src/hooks/useBooleanState.ts","../src/hooks/usePreviousState.ts","../src/hooks/useThrottle.ts","../src/hooks/useDebounce.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\n/**\n * setState(true)와 같은 동작을 추상화하여 setTrue, setFalse를 사용합니다.\n */\nfunction useBooleanState(defaultValue = false): [boolean, () => void, () => void] {\n const [state, setState] = useState(defaultValue);\n\n const setTrue = useCallback(() => setState(true), []);\n const setFalse = useCallback(() => setState(false), []);\n\n return [state, setTrue, setFalse];\n}\n\nexport default useBooleanState;\n","import { useRef, useEffect } from 'react';\n\n/**\n * 한 단계 이전 렌더 타이밍의 값을 반환합니다. 이전 값과 현재 값을 비교하는 상황 등에 사용할 수 있습니다.\n */\nexport default function usePreviousState<T>(value: T): T {\n const ref = useRef<T>(value);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n","import { useRef } from 'react';\n\nexport default function useThrottle<A extends unknown[]>(\n callback: (...args: A) => void,\n delay: number\n) {\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n return function throttledCallback(...args: A) {\n if (!timer.current) {\n timer.current = setTimeout(() => {\n callback(...args);\n timer.current = null;\n }, delay);\n }\n };\n}\n","import { useRef, useCallback } from 'react';\n\nexport default function useDebounce<A extends unknown[]>(\n callback: (...args: A) => void,\n delay: number\n) {\n const argsRef = useRef<A>();\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const cleanup = useCallback(() => {\n if (timer.current) clearTimeout(timer.current);\n }, []);\n\n const debouncedCallback = useCallback((...args: A) => {\n argsRef.current = args;\n cleanup();\n timer.current = setTimeout(() => {\n if (argsRef.current) {\n callback(...argsRef.current);\n timer.current = null;\n }\n }, delay);\n }, []);\n\n return debouncedCallback;\n}\n"],"names":["useState","useCallback","useRef","useEffect"],"mappings":";;;;;;AAEA;;;AAGA,SAAS,eAAe,CAAC,YAAoB;IAApB,6BAAA,EAAA,oBAAoB;IACrC,IAAA,KAAoBA,cAAQ,CAAC,YAAY,CAAC,EAAzC,KAAK,QAAA,EAAE,QAAQ,QAA0B,CAAC;IAEjD,IAAM,OAAO,GAAGC,iBAAW,CAAC,cAAM,OAAA,QAAQ,CAAC,IAAI,CAAC,GAAA,EAAE,EAAE,CAAC,CAAC;IACtD,IAAM,QAAQ,GAAGA,iBAAW,CAAC,cAAM,OAAA,QAAQ,CAAC,KAAK,CAAC,GAAA,EAAE,EAAE,CAAC,CAAC;IAExD,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpC;;ACVA;;;SAGwB,gBAAgB,CAAI,KAAQ;IAClD,IAAM,GAAG,GAAGC,YAAM,CAAI,KAAK,CAAC,CAAC;IAE7BC,eAAS,CAAC;QACR,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;KACrB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB;;SCXwB,WAAW,CACjC,QAA8B,EAC9B,KAAa;IAEb,IAAM,KAAK,GAAGD,YAAM,CAAuC,IAAI,CAAC,CAAC;IAEjE,OAAO,SAAS,iBAAiB;QAAC,cAAU;aAAV,UAAU,EAAV,qBAAU,EAAV,IAAU;YAAV,yBAAU;;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAClB,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;gBACzB,QAAQ,eAAI,IAAI,EAAE;gBAClB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;aACtB,EAAE,KAAK,CAAC,CAAC;SACX;KACF,CAAC;AACJ;;SCdwB,WAAW,CACjC,QAA8B,EAC9B,KAAa;IAEb,IAAM,OAAO,GAAGA,YAAM,EAAK,CAAC;IAC5B,IAAM,KAAK,GAAGA,YAAM,CAAuC,IAAI,CAAC,CAAC;IAEjE,IAAM,OAAO,GAAGD,iBAAW,CAAC;QAC1B,IAAI,KAAK,CAAC,OAAO;YAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAChD,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,iBAAiB,GAAGA,iBAAW,CAAC;QAAC,cAAU;aAAV,UAAU,EAAV,qBAAU,EAAV,IAAU;YAAV,yBAAU;;QAC/C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,EAAE,CAAC;QACV,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;YACzB,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,QAAQ,eAAI,OAAO,CAAC,OAAO,EAAE;gBAC7B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;aACtB;SACF,EAAE,KAAK,CAAC,CAAC;KACX,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,iBAAiB,CAAC;AAC3B;;;;;;;"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
/**
* useEffect로 async function을 넘기면 타입이 깨지기 때문에 사용하는 헬퍼입니다.
*
* 동작은 useEffect와 똑같지만, 이펙트가 반환하는 타입이 Promise<void>이기 때문에 클린업은 불가능합니다.
*/
function useAsyncEffect(asyncEffect, deps) {
react_1.useEffect(function () {
asyncEffect();
}, deps);
}
exports.default = useAsyncEffect;
//# sourceMappingURL=useAsyncEffect.js.map
{"version":3,"file":"useAsyncEffect.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncEffect.ts"],"names":[],"mappings":";;AAAA,+BAAkD;AAElD;;;;GAIG;AACH,SAAwB,cAAc,CAAC,WAAgC,EAAE,IAAoB;IAC3F,iBAAS,CAAC;QACR,WAAW,EAAE,CAAC;IAChB,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAJD,iCAIC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
var useBindInput = function (_a) {
var initialValue = _a.initialValue, validator = _a.validator;
var _b = react_1.useState(initialValue !== null && initialValue !== void 0 ? initialValue : ''), value = _b[0], setValue = _b[1];
var onChange = function (e) {
var text = e.target.value;
if (validator) {
var willUpdate = validator(text);
if (willUpdate) {
setValue(text);
}
}
else {
setValue(text);
}
};
var clearValue = function () {
setValue('');
};
return {
bind: {
value: value,
onChange: onChange,
},
setValue: setValue,
clearValue: clearValue,
};
};
exports.default = useBindInput;
//# sourceMappingURL=useBindInput.js.map
{"version":3,"file":"useBindInput.js","sourceRoot":"","sources":["../../../src/hooks/useBindInput.tsx"],"names":[],"mappings":";;AAAA,+BAAiC;AAOjC,IAAM,YAAY,GAAG,UAAC,EAMrB;QALC,YAAY,kBAAA,EACZ,SAAS,eAAA;IAKH,IAAA,KAAoB,gBAAQ,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC,EAA/C,KAAK,QAAA,EAAE,QAAQ,QAAgC,CAAC;IAEvD,IAAM,QAAQ,GAAG,UAAC,CAAsC;QAE1C,IAAO,IAAI,GACnB,CAAC,aADkB,CACjB;QAEN,IAAI,SAAS,EAAE;YACb,IAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,UAAU,EAAE;gBACd,QAAQ,CAAC,IAAI,CAAC,CAAC;aAChB;SACF;aAAM;YACL,QAAQ,CAAC,IAAI,CAAC,CAAC;SAChB;IACH,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG;QACjB,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,OAAA;YACL,QAAQ,UAAA;SACT;QACD,QAAQ,UAAA;QACR,UAAU,YAAA;KACX,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
/**
* setState(true)와 같은 동작을 추상화하여 setTrue, setFalse를 사용합니다.
*/
function useBooleanState(defaultValue) {
if (defaultValue === void 0) { defaultValue = false; }
var _a = react_1.useState(defaultValue), state = _a[0], setState = _a[1];
var setTrue = react_1.useCallback(function () { return setState(true); }, []);
var setFalse = react_1.useCallback(function () { return setState(false); }, []);
return [state, setTrue, setFalse];
}
exports.default = useBooleanState;
//# sourceMappingURL=useBooleanState.js.map
{"version":3,"file":"useBooleanState.js","sourceRoot":"","sources":["../../../src/hooks/useBooleanState.ts"],"names":[],"mappings":";;AAAA,+BAA8C;AAE9C;;GAEG;AACH,SAAS,eAAe,CAAC,YAAoB;IAApB,6BAAA,EAAA,oBAAoB;IACrC,IAAA,KAAoB,gBAAQ,CAAC,YAAY,CAAC,EAAzC,KAAK,QAAA,EAAE,QAAQ,QAA0B,CAAC;IAEjD,IAAM,OAAO,GAAG,mBAAW,CAAC,cAAM,OAAA,QAAQ,CAAC,IAAI,CAAC,EAAd,CAAc,EAAE,EAAE,CAAC,CAAC;IACtD,IAAM,QAAQ,GAAG,mBAAW,CAAC,cAAM,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe,EAAE,EAAE,CAAC,CAAC;IAExD,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,kBAAe,eAAe,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
function useDebounce(callback, delay) {
var argsRef = react_1.useRef();
var timer = react_1.useRef(null);
var cleanup = react_1.useCallback(function () {
if (timer.current)
clearTimeout(timer.current);
}, []);
var debouncedCallback = react_1.useCallback(function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
argsRef.current = args;
cleanup();
timer.current = setTimeout(function () {
if (argsRef.current) {
callback.apply(void 0, argsRef.current);
timer.current = null;
}
}, delay);
}, []);
return debouncedCallback;
}
exports.default = useDebounce;
//# sourceMappingURL=useDebounce.js.map
{"version":3,"file":"useDebounce.js","sourceRoot":"","sources":["../../../src/hooks/useDebounce.ts"],"names":[],"mappings":";;AAAA,+BAA4C;AAE5C,SAAwB,WAAW,CACjC,QAA8B,EAC9B,KAAa;IAEb,IAAM,OAAO,GAAG,cAAM,EAAK,CAAC;IAC5B,IAAM,KAAK,GAAG,cAAM,CAAuC,IAAI,CAAC,CAAC;IAEjE,IAAM,OAAO,GAAG,mBAAW,CAAC;QAC1B,IAAI,KAAK,CAAC,OAAO;YAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,iBAAiB,GAAG,mBAAW,CAAC;QAAC,cAAU;aAAV,UAAU,EAAV,qBAAU,EAAV,IAAU;YAAV,yBAAU;;QAC/C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,EAAE,CAAC;QACV,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;YACzB,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,QAAQ,eAAI,OAAO,CAAC,OAAO,EAAE;gBAC7B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;aACtB;QACH,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAvBD,8BAuBC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
/**
* 한 단계 이전 렌더 타이밍의 값을 반환합니다. 이전 값과 현재 값을 비교하는 상황 등에 사용할 수 있습니다.
*/
function usePreviousState(value) {
var ref = react_1.useRef(value);
react_1.useEffect(function () {
ref.current = value;
}, [value]);
return ref.current;
}
exports.default = usePreviousState;
//# sourceMappingURL=usePreviousState.js.map
{"version":3,"file":"usePreviousState.js","sourceRoot":"","sources":["../../../src/hooks/usePreviousState.ts"],"names":[],"mappings":";;AAAA,+BAA0C;AAE1C;;GAEG;AACH,SAAwB,gBAAgB,CAAI,KAAQ;IAClD,IAAM,GAAG,GAAG,cAAM,CAAI,KAAK,CAAC,CAAC;IAE7B,iBAAS,CAAC;QACR,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC;AARD,mCAQC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
function useThrottle(callback, delay) {
var timer = react_1.useRef(null);
return function throttledCallback() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (!timer.current) {
timer.current = setTimeout(function () {
callback.apply(void 0, args);
timer.current = null;
}, delay);
}
};
}
exports.default = useThrottle;
//# sourceMappingURL=useThrottle.js.map
{"version":3,"file":"useThrottle.js","sourceRoot":"","sources":["../../../src/hooks/useThrottle.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAE/B,SAAwB,WAAW,CACjC,QAA8B,EAC9B,KAAa;IAEb,IAAM,KAAK,GAAG,cAAM,CAAuC,IAAI,CAAC,CAAC;IAEjE,OAAO,SAAS,iBAAiB;QAAC,cAAU;aAAV,UAAU,EAAV,qBAAU,EAAV,IAAU;YAAV,yBAAU;;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAClB,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;gBACzB,QAAQ,eAAI,IAAI,EAAE;gBAClB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,CAAC,EAAE,KAAK,CAAC,CAAC;SACX;IACH,CAAC,CAAC;AACJ,CAAC;AAdD,8BAcC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var useBooleanState_1 = require("./hooks/useBooleanState");
Object.defineProperty(exports, "useBooleanState", { enumerable: true, get: function () { return useBooleanState_1.default; } });
var usePreviousState_1 = require("./hooks/usePreviousState");
Object.defineProperty(exports, "usePreviousState", { enumerable: true, get: function () { return usePreviousState_1.default; } });
var useThrottle_1 = require("./hooks/useThrottle");
Object.defineProperty(exports, "useThrottle", { enumerable: true, get: function () { return useThrottle_1.default; } });
var useDebounce_1 = require("./hooks/useDebounce");
Object.defineProperty(exports, "useDebounce", { enumerable: true, get: function () { return useDebounce_1.default; } });
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;AAAA,2DAAqE;AAA5D,kHAAA,OAAO,OAAmB;AACnC,6DAAuE;AAA9D,oHAAA,OAAO,OAAoB;AACpC,mDAA6D;AAApD,0GAAA,OAAO,OAAe;AAC/B,mDAA6D;AAApD,0GAAA,OAAO,OAAe"}
import { DependencyList } from 'react';
/**
* useEffect로 async function을 넘기면 타입이 깨지기 때문에 사용하는 헬퍼입니다.
*
* 동작은 useEffect와 똑같지만, 이펙트가 반환하는 타입이 Promise<void>이기 때문에 클린업은 불가능합니다.
*/
export default function useAsyncEffect(asyncEffect: () => Promise<void>, deps: DependencyList): void;
export interface BindInput {
value: string;
onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
}
declare const useBindInput: ({ initialValue, validator, }: {
initialValue?: string | undefined;
validator?: ((text: string) => boolean) | undefined;
}) => {
bind: {
value: string;
onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
};
setValue: import("react").Dispatch<import("react").SetStateAction<string>>;
clearValue: () => void;
};
export default useBindInput;
/**
* setState(true)와 같은 동작을 추상화하여 setTrue, setFalse를 사용합니다.
*/
declare function useBooleanState(defaultValue?: boolean): [boolean, () => void, () => void];
export default useBooleanState;
export default function useDebounce<A extends unknown[]>(callback: (...args: A) => void, delay: number): (...args: A) => void;
/**
* 한 단계 이전 렌더 타이밍의 값을 반환합니다. 이전 값과 현재 값을 비교하는 상황 등에 사용할 수 있습니다.
*/
export default function usePreviousState<T>(value: T): T;
export default function useThrottle<A extends unknown[]>(callback: (...args: A) => void, delay: number): (...args: A) => void;
export { default as useBooleanState } from './hooks/useBooleanState';
export { default as usePreviousState } from './hooks/usePreviousState';
export { default as useThrottle } from './hooks/useThrottle';
export { default as useDebounce } from './hooks/useDebounce';