Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
srv
/
data
/
web
/
vhosts
/
716cf56cb2.url-de-test.ws
/
htdocs
/
node_modules
/
preact
/
compat
/
src
/
/srv/data/web/vhosts/716cf56cb2.url-de-test.ws/htdocs/node_modules/preact/compat/src/memo.js
import { createElement } from 'preact'; import { shallowDiffers } from './util'; /** * Memoize a component, so that it only updates when the props actually have * changed. This was previously known as `React.pure`. * @param {import('./internal').FunctionComponent} c functional component * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function * @returns {import('./internal').FunctionComponent} */ export function memo(c, comparer) { function shouldUpdate(nextProps) { let ref = this.props.ref; let updateRef = ref == nextProps.ref; if (!updateRef && ref) { ref.call ? ref(null) : (ref.current = null); } if (!comparer) { return shallowDiffers(this.props, nextProps); } return !comparer(this.props, nextProps) || !updateRef; } function Memoed(props) { this.shouldComponentUpdate = shouldUpdate; return createElement(c, props); } Memoed.displayName = 'Memo(' + (c.displayName || c.name) + ')'; Memoed.prototype.isReactComponent = true; Memoed._forwarded = true; return Memoed; }