react-in-viewport
Version:
Track React component in viewport using Intersection Observer API
38 lines (37 loc) • 1.52 kB
JavaScript
;
var _react = require("react");
var _react2 = require("@testing-library/react");
var _index = require("../index");
var _jsxRuntime = require("react/jsx-runtime");
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
var DemoClass = /*#__PURE__*/function (_PureComponent) {
_inheritsLoose(DemoClass, _PureComponent);
function DemoClass() {
return _PureComponent.apply(this, arguments) || this;
}
var _proto = DemoClass.prototype;
_proto.render = function render() {
var inViewport = this.props.inViewport;
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
style: {
width: '400px',
height: '300px'
},
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
className: "content",
"data-testid": "content",
children: inViewport ? 'in viewport' : 'not in viewport'
})
});
};
return DemoClass;
}(_react.PureComponent);
describe('In Viewport', function () {
it('basic render', function () {
var TestNode = (0, _index.handleViewport)(DemoClass);
var _render = (0, _react2.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(TestNode, {})),
getByTestId = _render.getByTestId;
expect(getByTestId('content').innerHTML).toEqual('not in viewport');
});
});