UNPKG

@darwish/hooks-core

Version:

30 lines (29 loc) 1.03 kB
import { useState } from "react"; import { isFunction } from "@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 = useState(initialVal), value = _a[0], setValue = _a[1]; var updateValueFn = function (updateValue) { if (isFunction(updateValue)) { setValue(function (prev) { return updateValue(prev); }); } else if (updateValue === null || updateValue === undefined) { setValue(defaultVal); } else { setValue(updateValue); } }; return [value, updateValueFn]; }; export default useDefault;