UNPKG

@mopinion/survey

Version:

Collect customer feedback with the Mopinion survey library

50 lines (49 loc) 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = Group; var _preact = require("preact"); var _hooks = require("preact/hooks"); var _compat = require("preact/compat"); var _utils = require("../../../utils"); function Group(_ref) { var _block$properties; var children = _ref.children, focusInvalid = _ref.focusInvalid, index = _ref.index, show = _ref.show, _ref$block = _ref.block, block = _ref$block === void 0 ? {} : _ref$block, _ref$typeCount = _ref.typeCount, typeCount = _ref$typeCount === void 0 ? 1 : _ref$typeCount, _id = _ref._id; var groupRef = (0, _hooks.useRef)(null); var className = "control-group question ".concat(block.typeName !== 'rating' ? block.typeName : '', "-group ").concat(block.typeName, "-group-").concat(typeCount, " ").concat(block.tooltip ? 'has-tooltip' : '', " ").concat(block.typeName === 'screenshot' && (_block$properties = block.properties) !== null && _block$properties !== void 0 && _block$properties.bottomScreen ? 'section absolute' : ''); var id = "".concat(block.typeName, "-").concat(block.id).concat(block.typeName === 'special_input' ? "-".concat(_id) : ''); var WrappingComponent = ['select', 'textarea', 'input', 'special_input', 'contact', 'section_break'].indexOf(block.typeName) > -1 ? 'div' : 'fieldset'; (0, _hooks.useEffect)(function () { if (focusInvalid) { try { groupRef.current.scrollIntoView({ behavior: 'smooth', block: 'center' }); } catch (e) {} (0, _utils.tryFocus)(groupRef.current.querySelector('input, textarea, .ui-stars-star, .nice-select')); } }, [focusInvalid, groupRef]); return (0, _preact.h)("section", { className: className, style: { display: show ? 'block' : 'none' }, "data-index": index, key: id, id: id, ref: groupRef, "data-testid": "".concat(block.typeName, "-group"), tabIndex: "-1" }, (0, _preact.h)(WrappingComponent, null, children)); } //# sourceMappingURL=Group.js.map