wix-style-react
Version:
wix-style-react
72 lines (65 loc) • 2.2 kB
JavaScript
import floatingTabItemDriverFactory from '../FloatingTabItem/FloatingTabItem.driver';
import buttonDriverFactory from '../Button/Button.driver';
var floatingTabsDriverFactory = function floatingTabsDriverFactory(_ref) {
var element = _ref.element;
var containers = Array.from(element.childNodes).map(function (container) {
return floatingTabItemDriverFactory({ element: container });
});
var getButtonById = function getButtonById(id) {
return element.querySelector('[data-hook="floating-tab-item-button-' + id + '"]');
};
return {
exists: function exists() {
return !!element;
},
// clickOnTabAt: index => buttonDrivers[index].click(),
activeContent: function activeContent() {
var activeContent = containers.find(function (c) {
return c.isActive();
});
if (activeContent) {
return activeContent.content();
}
return null;
},
activeTitle: function activeTitle() {
var activeContent = containers.find(function (c) {
return c.isActive();
});
if (activeContent) {
return activeContent.content();
}
return null;
},
isButtonByIdExists: function isButtonByIdExists(id) {
return !!getButtonById(id);
},
getButtonTextById: function getButtonTextById(id) {
return getButtonById(id).textContent;
},
isButtonActive: function isButtonActive(id) {
var button = getButtonById(id);
if (button) {
var buttonFactory = buttonDriverFactory({ element: button });
return buttonFactory.hasTheme('fill');
}
return undefined;
},
isButtonHasClass: function isButtonHasClass(id, className) {
var button = getButtonById(id);
if (button) {
var buttonFactory = buttonDriverFactory({ element: button });
return buttonFactory.hasClass(className);
}
return undefined;
},
clickButtonById: function clickButtonById(id) {
var button = getButtonById(id);
if (button) {
var buttonFactory = buttonDriverFactory({ element: button });
return buttonFactory.click();
}
}
};
};
export default floatingTabsDriverFactory;