UNPKG

mod-arch-shared

Version:

Shared UI components and utilities for modular architecture micro-frontend projects

40 lines 2.12 kB
import * as React from 'react'; import { InputGroup, InputGroupItem, SearchInput } from '@patternfly/react-core'; import SimpleSelect from '../components/SimpleSelect'; import { asEnumMember } from '../utilities/utils'; // List all the possible search fields here export var SearchType; (function (SearchType) { SearchType["NAME"] = "Name"; SearchType["DESCRIPTION"] = "Description"; SearchType["USER"] = "User"; SearchType["PROJECT"] = "Project"; SearchType["METRIC"] = "Metric"; SearchType["PROTECTED_ATTRIBUTE"] = "Protected attribute"; SearchType["PRIVILEGED_VALUE"] = "Privileged value"; SearchType["UNPRIVILEGED_VALUE"] = "Unprivileged value"; SearchType["OUTPUT"] = "Output"; SearchType["OUTPUT_VALUE"] = "Output value"; SearchType["PROVIDER"] = "Provider"; SearchType["IDENTIFIER"] = "Identifier"; SearchType["KEYWORD"] = "Keyword"; SearchType["AUTHOR"] = "Author"; SearchType["OWNER"] = "Owner"; })(SearchType || (SearchType = {})); const DashboardSearchField = ({ types, searchValue, searchType, onSearchValueChange, onSearchTypeChange, icon, }) => (React.createElement(InputGroup, { "data-testid": "dashboard-table-toolbar" }, React.createElement(InputGroupItem, null, React.createElement(SimpleSelect, { "aria-label": "Filter type", dataTestId: "filter-dropdown-select", options: types.map((key) => ({ key, label: key, })), value: searchType, onChange: (key) => { const enumMember = asEnumMember(key, SearchType); if (enumMember !== null) { onSearchTypeChange(enumMember); } }, icon: icon })), React.createElement(InputGroupItem, null, React.createElement(SearchInput, { placeholder: `Find by ${searchType.toLowerCase()}`, value: searchValue, onChange: (_, newSearch) => { onSearchValueChange(newSearch); }, onClear: () => onSearchValueChange(''), style: { minWidth: '200px' } })))); export default DashboardSearchField; //# sourceMappingURL=DashboardSearchField.js.map