These files should not be added
This commit is contained in:
34
build/javascript/node_modules/preact/compat/src/memo.js
generated
vendored
34
build/javascript/node_modules/preact/compat/src/memo.js
generated
vendored
@@ -1,34 +0,0 @@
|
||||
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').FunctionalComponent} c functional component
|
||||
* @param {(prev: object, next: object) => boolean} [comparer] Custom equality function
|
||||
* @returns {import('./internal').FunctionalComponent}
|
||||
*/
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user