wix-style-react
Version:
wix-style-react
73 lines (61 loc) • 2.59 kB
JavaScript
var _this = this;
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
import { SCROLL_TOP_THRESHOLD } from './constants';
var _titleElement = function _titleElement(component) {
return component.$('[data-hook="page-header-title"]');
};
var scrollableContentElement = function scrollableContentElement(component) {
return component.$('[data-hook="page-scrollable-content"]');
};
var pageDriverFactory = function pageDriverFactory(component) {
var setContentScrollOffset = function () {
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(offset) {
var element;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
element = scrollableContentElement(component);
_context.t0 = browser;
_context.t1 = 'arguments[0].scrollTop = ' + offset + ';';
_context.next = 5;
return element.getWebElement();
case 5:
_context.t2 = _context.sent;
_context.next = 8;
return _context.t0.executeScript.call(_context.t0, _context.t1, _context.t2);
case 8:
case 'end':
return _context.stop();
}
}
}, _callee, _this);
}));
return function setContentScrollOffset(_x) {
return _ref.apply(this, arguments);
};
}();
return {
/** returns the driver element */
element: function element() {
return component;
},
/** Scroll content down, enough to minimize page header */
scrollDown: function scrollDown() {
return setContentScrollOffset(SCROLL_TOP_THRESHOLD + 1);
},
/** scrolls up to maximised page */
scrollUp: function scrollUp() {
return setContentScrollOffset(SCROLL_TOP_THRESHOLD);
},
/** true if title exists */
titleExists: function titleExists() {
return _titleElement(component).isPresent();
},
/** returns title element */
titleElement: function titleElement() {
return _titleElement(component);
}
};
};
export default pageDriverFactory;