react-hooks-use-previous
Version:
Strongly typed and well tested React Hooks to store and retrieve previous values from any component property.
21 lines • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
exports.usePreviousString = (value, initialPreviousValue = '') => usePrevious(value, initialPreviousValue);
exports.usePreviousStringArray = (value, initialPreviousValue = [], config) => usePrevious(value, initialPreviousValue, config);
exports.usePreviousNumber = (value, initialPreviousValue = 0) => usePrevious(value, initialPreviousValue);
exports.usePreviousNumberArray = (value, initialPreviousValue = [], config) => usePrevious(value, initialPreviousValue, config);
exports.usePreviousBoolean = (value, initialPreviousValue = false) => usePrevious(value, initialPreviousValue);
exports.usePreviousBooleanArray = (value, initialPreviousValue = [], config) => usePrevious(value, initialPreviousValue, config);
const refEquality = (a, b) => a === b;
const usePrevious = (value, initialPreviousValue, config) => {
const { current } = react_1.useRef({ target: value, value: initialPreviousValue });
const fn = (config === null || config === void 0 ? void 0 : config.equalityFn) || refEquality;
if (!fn(current.target, value)) {
current.value = current.target;
current.target = value;
}
return current.value;
};
exports.default = usePrevious;
//# sourceMappingURL=usePrevious.js.map