UNPKG

@helenejs/react

Version:

Real-time Web Apps for Node.js

26 lines 1.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useLastChangedTimestamp = useLastChangedTimestamp; exports.useObject = useObject; const react_1 = require("react"); const isEqual_1 = __importDefault(require("lodash/isEqual")); const useCreation_1 = __importDefault(require("ahooks/lib/useCreation")); function useLastChangedTimestamp(obj) { const [timestamp, setTimestamp] = (0, react_1.useState)(Date.now()); const previousObj = (0, react_1.useRef)(obj); (0, react_1.useEffect)(() => { if (!(0, isEqual_1.default)(previousObj.current, obj)) { previousObj.current = obj; setTimestamp(Date.now()); } }, [obj]); return timestamp; } function useObject(currentObject) { const timestamp = useLastChangedTimestamp(currentObject); return (0, useCreation_1.default)(() => currentObject, [timestamp]); } //# sourceMappingURL=use-object.js.map