Outlook_Addin_LLM/node_modules/@fluentui/utilities/lib-amd/DelayedRender.js

46 lines
1.8 KiB
JavaScript
Raw Normal View History

define(["require", "exports", "tslib", "react", "./dom/getWindow"], function (require, exports, tslib_1, React, getWindow_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DelayedRender = void 0;
/**
* Utility component for delaying the render of a child component after a given delay. This component
* requires a single child component; don't pass in many components. Wrap multiple components in a DIV
* if necessary.
*
* @public
* {@docCategory DelayedRender}
*/
var DelayedRender = exports.DelayedRender = /** @class */ (function (_super) {
tslib_1.__extends(DelayedRender, _super);
function DelayedRender(props) {
var _this = _super.call(this, props) || this;
_this.state = {
isRendered: (0, getWindow_1.getWindow)() === undefined,
};
return _this;
}
DelayedRender.prototype.componentDidMount = function () {
var _this = this;
var delay = this.props.delay;
// eslint-disable-next-line no-restricted-globals
this._timeoutId = window.setTimeout(function () {
_this.setState({
isRendered: true,
});
}, delay);
};
DelayedRender.prototype.componentWillUnmount = function () {
if (this._timeoutId) {
clearTimeout(this._timeoutId);
}
};
DelayedRender.prototype.render = function () {
return this.state.isRendered ? React.Children.only(this.props.children) : null;
};
DelayedRender.defaultProps = {
delay: 0,
};
return DelayedRender;
}(React.Component));
});
//# sourceMappingURL=DelayedRender.js.map