import { useState } from 'react'; import { TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, Button, ValidatedOptions, Flex, FlexItem } from '@patternfly/react-core'; import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon'; import RhMicronsCloseIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-close-icon'; export const TextInputGroupWithStatus: React.FunctionComponent = () => { const [successValue, setSuccessValue] = useState('Success validation'); const [warningValue, setWarningValue] = useState('Warning validation with custom non-status icon at start'); const [errorValue, setErrorValue] = useState('Error validation with custom non-status icon at start and utilities'); /** show the input clearing button only when the input is not empty */ const showClearButton = !!errorValue; /** render the utilities component only when a component it contains is being rendered */ const showUtilities = showClearButton; /** callback for clearing the text input */ const clearInput = () => { setErrorValue(''); }; return ( setSuccessValue(value)} /> } value={warningValue} onChange={(_event, value) => setWarningValue(value)} /> } value={errorValue} onChange={(_event, value) => setErrorValue(value)} /> {showUtilities && ( {showClearButton && (