UNPKG

wix-style-react

Version:
77 lines (64 loc) 2.67 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _constants = require('./constants'); 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"); }); }; } 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, undefined); })); 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(_constants.SCROLL_TOP_THRESHOLD + 1); }, /** scrolls up to maximised page */ scrollUp: function scrollUp() { return setContentScrollOffset(_constants.SCROLL_TOP_THRESHOLD); }, /** true if title exists */ titleExists: function titleExists() { return _titleElement(component).isPresent(); }, /** returns title element */ titleElement: function titleElement() { return _titleElement(component); } }; }; exports.default = pageDriverFactory;