UNPKG

@shopgate/engage

Version:
6 lines 1.49 kB
import _camelCase from"lodash/camelCase";import React,{memo}from'react';import PropTypes from'prop-types';import classNames from'classnames';import Select from'@shopgate/pwa-ui-shared/Form/Select';import FormHelper from"./FormHelper";/** * Takes an element and renders it, if the type matches * @param {Object} props Component props. * @param {Object} props.element The data of the element to be rendered * @returns {JSX.Element} */var ElementSelect=function ElementSelect(props){var element=props.element,errorText=props.errorText,name=props.name,value=props.value,visible=props.visible,formName=props.formName;if(!visible){return null;}var label=element.label,placeholder=element.placeholder,required=element.required,options=element.options,disabled=element.disabled,handleChange=element.handleChange;return React.createElement("div",{className:classNames(_camelCase(name),'engage__form-select','formBuilderField',{validationError:!!errorText})},React.createElement(Select,{name:name,required:required,label:label,placeholder:placeholder,value:value,options:options,onChange:handleChange,errorText:errorText,isControlled:true,translateErrorText:false,showErrorText:false,disabled:disabled,"aria-invalid":!!errorText,"aria-describedby":errorText.length>0?"ariaError-".concat(name):null}),React.createElement(FormHelper,{errorText:errorText,element:element,formName:formName,elementName:name}));};ElementSelect.defaultProps={value:'',visible:true};export default memo(ElementSelect);