wix-style-react
Version:
wix-style-react
33 lines (29 loc) • 995 B
JavaScript
import tooltipDriverFactory from '../Tooltip/Tooltip.driver';
const formFieldDriver = ({ element }) => {
const byHook = hook => element.querySelector(`[data-hook*="${hook}"]`);
const charactersCounter = () => byHook('formfield-counter');
return {
exists: () => !!element,
element: () => element,
getChildren: () => byHook('formfield-children'),
getLabel: () => byHook('formfield-label'),
isRequired: () => !!byHook('formfield-asterisk'),
getLengthLeft: () => {
const counter = charactersCounter();
return counter ? parseInt(counter.innerHTML, 10) : null;
},
isLengthExceeded: () => {
const counter = charactersCounter();
if (counter) {
const length = parseInt(counter.innerHTML, 10);
return length < 0;
}
return false;
},
getInfoContent: () =>
tooltipDriverFactory({
element: byHook('formfield-infotooltip'),
}).hoverAndGetContent(),
};
};
export default formFieldDriver;