prostgles-client
Version:
Reactive client for Postgres
24 lines (23 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useEffectDeep = exports.useMemoDeep = exports.useDeepCompareMemoize = void 0;
const prostgles_types_1 = require("prostgles-types");
const reactImports_1 = require("./reactImports");
const { getReact, useEffect, useRef } = reactImports_1.reactImports;
const React = getReact();
const useDeepCompareMemoize = (value) => {
const ref = useRef();
if (!(0, prostgles_types_1.isEqual)(value, ref.current)) {
ref.current = value;
}
return ref.current;
};
exports.useDeepCompareMemoize = useDeepCompareMemoize;
exports.useMemoDeep = ((callback, deps) => {
// eslint-disable-next-line react-hooks/exhaustive-deps
return React.useMemo(callback, deps.map(exports.useDeepCompareMemoize));
});
exports.useEffectDeep = ((callback, deps) => {
// eslint-disable-next-line react-hooks/exhaustive-deps
useEffect(callback, deps === null || deps === void 0 ? void 0 : deps.map(exports.useDeepCompareMemoize));
});