UNPKG

refun

Version:

A collection of React Hook-enabled functions that compose harmoniously with each other. Similar to `recompose`, but:

25 lines (19 loc) 727 B
Object.defineProperty(exports, "__esModule", { value: true }); exports.pureComponent = pureComponent; var _react = require("react"); var _tsfn = require("tsfn"); var _utils = require("./utils"); function pureComponent(...uses) { return Component => props => { const renderResultRef = (0, _react.useRef)(null); const prevOutPropsRef = (0, _react.useRef)(_tsfn.EMPTY_OBJECT); const outProps = uses.reduce((props, use) => use(props), props); if (prevOutPropsRef.current === _tsfn.EMPTY_OBJECT || !(0, _utils.shallowEquals)(prevOutPropsRef.current, outProps)) { prevOutPropsRef.current = outProps; renderResultRef.current = Component(outProps); } return renderResultRef.current; }; }