import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { Spinner, Select, SelectOption, SelectVariant, Level, LevelItem } from '@patternfly/react-core'; import { ErrorCircleOIcon } from '@patternfly/react-icons'; const SelectableDropdown = ({ items, title, showTitle, selected, setSelected, loading, error, }) => { const [isOpen, setIsOpen] = useState(false); const icon = () => { if (error) return ; if (loading) return ; return null; }; const onSelect = (_event, selection) => { setSelected(selection); setIsOpen(false); }; const onToggle = open => setIsOpen(open); const selectItems = items.map(item => ); return ( {showTitle && } ); }; SelectableDropdown.propTypes = { items: PropTypes.arrayOf(PropTypes.string).isRequired, title: PropTypes.string.isRequired, showTitle: PropTypes.bool, selected: PropTypes.string.isRequired, setSelected: PropTypes.func.isRequired, // If the items are loaded dynamically, you can pass in loading or error states loading: PropTypes.bool, error: PropTypes.bool, }; SelectableDropdown.defaultProps = { loading: false, error: false, showTitle: true, }; export default SelectableDropdown;