Files
starface-outlook-sync-addin/node_modules/@fluentui/utilities/lib/DelayedRender.js
T
Stefan Hacker 37ad745546 first commit
2026-04-03 09:38:48 +02:00

45 lines
1.5 KiB
JavaScript

import { __extends } from "tslib";
import * as React from 'react';
import { getWindow } from './dom/getWindow';
/**
* 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 = /** @class */ (function (_super) {
__extends(DelayedRender, _super);
function DelayedRender(props) {
var _this = _super.call(this, props) || this;
_this.state = {
isRendered: 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));
export { DelayedRender };
//# sourceMappingURL=DelayedRender.js.map