UNPKG

@restart/hooks

Version:

A set of utility and general-purpose React hooks.

27 lines (26 loc) 1.07 kB
"use strict"; exports.__esModule = true; exports.default = useDebouncedState; var _react = require("react"); var _useDebouncedCallback = _interopRequireDefault(require("./useDebouncedCallback.js")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * Similar to `useState`, except the setter function is debounced by * the specified delay. Unlike `useState`, the returned setter is not "pure" having * the side effect of scheduling an update in a timeout, which makes it unsafe to call * inside of the component render phase. * * ```ts * const [value, setValue] = useDebouncedState('test', 500) * * setValue('test2') * ``` * * @param initialState initial state value * @param delayOrOptions The milliseconds delay before a new value is set, or options object */ function useDebouncedState(initialState, delayOrOptions) { const [state, setState] = (0, _react.useState)(initialState); const debouncedSetState = (0, _useDebouncedCallback.default)(setState, delayOrOptions); return [state, debouncedSetState]; }