@rozhkov/react-useful-hooks
Version:
Useful hooks for React application
22 lines (21 loc) • 843 B
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const usePrevious_1 = __importDefault(require("./usePrevious"));
const useIsFirstRender_1 = __importDefault(require("./useIsFirstRender"));
const defaultCompare = (v1, v2) => v1 === v2;
const useChangeCounter = (value, compare = defaultCompare) => {
const isFirstRender = (0, useIsFirstRender_1.default)();
const counterRef = (0, react_1.useRef)(0);
const prev = (0, usePrevious_1.default)(value);
if (!isFirstRender) {
if (!compare(prev, value)) {
++counterRef.current;
}
}
return counterRef.current;
};
exports.default = useChangeCounter;
;