Sha256: df0e2dcb8c42f1ce4eb451ccae54257ae908cb1dc4364e4e20f3da4b148d50ae
Contents?: true
Size: 1.33 KB
Versions: 7
Compression:
Stored size: 1.33 KB
Contents
import React, { useState } from 'react'; import { FormGroup, Select, SelectOption } from '@patternfly/react-core'; import PropTypes from 'prop-types'; export const SelectField = ({ label, fieldId, options, value, setValue, labelIcon, isRequired, ...props }) => { const onSelect = (event, selection) => { setValue(selection); setIsOpen(false); }; const [isOpen, setIsOpen] = useState(false); return ( <FormGroup label={label} fieldId={fieldId} labelIcon={labelIcon} isRequired={isRequired} > <Select selections={value} onSelect={onSelect} onToggle={setIsOpen} isOpen={isOpen} className="without_select2" maxHeight="45vh" menuAppendTo={() => document.body} {...props} > {options.map((option, index) => ( <SelectOption key={index} value={option} /> ))} </Select> </FormGroup> ); }; SelectField.propTypes = { label: PropTypes.string, fieldId: PropTypes.string.isRequired, options: PropTypes.array, value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), setValue: PropTypes.func.isRequired, labelIcon: PropTypes.node, isRequired: PropTypes.bool, }; SelectField.defaultProps = { label: null, options: [], labelIcon: null, value: null, isRequired: false, };
Version data entries
7 entries across 7 versions & 1 rubygems