UNPKG

@sevenoutman/use-debounced-memo

Version:
20 lines (19 loc) 720 B
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var lodash_debounce_1 = __importDefault(require("lodash.debounce")); /** * Debounced useMemo() */ function useDebouncedMemo(factory, deps, debounce) { var _a = react_1.useState(factory()), state = _a[0], setState = _a[1]; var debouncedSetState = react_1.useCallback(lodash_debounce_1.default(setState, debounce), []); react_1.useEffect(function () { debouncedSetState(factory()); }, deps); return state; } exports.default = useDebouncedMemo;