UNPKG

@react-native-ohos/flash-list

Version:

FlashList is a more performant FlatList replacement

60 lines 2.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PureComponentWrapper = void 0; var tslib_1 = require("tslib"); /** * MIT License * * Copyright (C) 2024 Huawei Device Co., Ltd. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ var react_1 = tslib_1.__importDefault(require("react")); /** * Pure component wrapper that can be used to prevent renders of the `renderer` method passed to the component. Any change in props will lead to `renderer` getting called. */ var PureComponentWrapper = /** @class */ (function (_super) { tslib_1.__extends(PureComponentWrapper, _super); function PureComponentWrapper() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.overrideEnabled = undefined; return _this; } /** Once set explicitly, prop will be ignored. Not using state because of performance reasons. */ PureComponentWrapper.prototype.setEnabled = function (enabled) { if (enabled !== this.overrideEnabled) { this.overrideEnabled = enabled; this.forceUpdate(); } }; PureComponentWrapper.prototype.render = function () { if (this.overrideEnabled === undefined) { return ((this.props.enabled && this.props.renderer(this.props.arg)) || null); } else { return ((this.overrideEnabled && this.props.renderer(this.props.arg)) || null); } }; PureComponentWrapper.defaultProps = { enabled: true, }; return PureComponentWrapper; }(react_1.default.PureComponent)); exports.PureComponentWrapper = PureComponentWrapper; //# sourceMappingURL=PureComponentWrapper.js.map