"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); exports.__esModule = true; exports.default = delayTransitionRender; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _react = _interopRequireWildcard(require("react")); var _requestanimationframeTimer = require("requestanimationframe-timer"); var _jsxFileName = "/Users/tylerbarnes/Documents/GitHub/transitionlink-workspace/gatsby-plugin-transition-link/src/components/delayTransitionRender.js"; function delayTransitionRender(WrappedComponent) { var DelayedTransitionWrapper = /*#__PURE__*/ function (_Component) { (0, _inheritsLoose2.default)(DelayedTransitionWrapper, _Component); function DelayedTransitionWrapper(props) { var _this; _this = _Component.call(this, props) || this; _this.state = { // if there is a delay, set shouldRender to false // then in componentdid mount shouldRender becomes true // after the delay. shouldRender: !!!_this.props.delay }; return _this; } var _proto = DelayedTransitionWrapper.prototype; _proto.componentDidMount = function componentDidMount() { var _this2 = this; this.renderTimeout = (0, _requestanimationframeTimer.setTimeout)(function () { return _this2.setState({ shouldRender: true }); }, this.props.delay); }; _proto.componentWillUnmount = function componentWillUnmount() { (0, _requestanimationframeTimer.clearTimeout)(this.renderTimeout); }; _proto.render = function render() { return this.state.shouldRender || typeof window === "undefined" ? _react.default.createElement(WrappedComponent, (0, _extends2.default)({}, this.props, { __source: { fileName: _jsxFileName, lineNumber: 30 }, __self: this })) : null; }; return DelayedTransitionWrapper; }(_react.Component); return DelayedTransitionWrapper; }