mod-arch-shared
Version:
Shared UI components and utilities for modular architecture micro-frontend projects
40 lines • 2.12 kB
JavaScript
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