UNPKG

@darwish/hooks-core

Version:

32 lines (31 loc) 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var utils_is_1 = require("@darwish/utils-is"); /** * @description A hook to set default value * @param defaultVal default value * @param initialVal initial value * @returns [value, updateValueFn] -> Array * @example * const [state, updateState] = useDefault('default value', 'initial value'); * updateState('new value'); // state = 'new value' * updateState(null); // state = 'default value' * updateState(undefined); // state = 'default value' */ var useDefault = function (defaultVal, initialVal) { var _a = (0, react_1.useState)(initialVal), value = _a[0], setValue = _a[1]; var updateValueFn = function (updateValue) { if ((0, utils_is_1.isFunction)(updateValue)) { setValue(function (prev) { return updateValue(prev); }); } else if (updateValue === null || updateValue === undefined) { setValue(defaultVal); } else { setValue(updateValue); } }; return [value, updateValueFn]; }; exports.default = useDefault;