Sha256: 4e2405ea1144215257cd4b8cd66c00a1a9659c3b6db8f3d4d8853eee2f5f89f6
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
import React from 'react'; import PropTypes from 'prop-types'; import { FormGroup, TextInput } from '@patternfly/react-core'; import { ExclamationCircleIcon } from '@patternfly/react-icons'; const wrapFieldProps = fieldProps => { const { onChange } = fieldProps; // modify onChange args to correctly wire formik with pf4 input handlers const wrappedOnChange = (value, event) => { onChange(event); }; return { ...fieldProps, onChange: wrappedOnChange }; }; const shouldValidate = (form, fieldName) => { if (form.touched[fieldName]) { return form.errors[fieldName] ? 'error' : 'success'; } return 'noval'; }; const fieldWithHandlers = Component => { const Subcomponent = ({ label, form, field, isRequired, ...rest }) => { const fieldProps = wrapFieldProps(field); const valid = shouldValidate(form, field.name); return ( <FormGroup label={label} isRequired={isRequired} helperTextInvalid={form.errors[field.name]} helperTextInvalidIcon={<ExclamationCircleIcon />} validated={valid} > <Component aria-label={fieldProps.name} {...fieldProps} {...rest} validated={valid} isDisabled={form.isSubmitting} /> </FormGroup> ); }; Subcomponent.propTypes = { form: PropTypes.object.isRequired, field: PropTypes.object.isRequired, label: PropTypes.string.isRequired, isRequired: PropTypes.bool, }; Subcomponent.defaultProps = { isRequired: false, }; return Subcomponent; }; export const TextField = fieldWithHandlers(TextInput);
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
foreman_openscap-5.1.0 | webpack/helpers/formFieldsHelper.js |