import { Button, ITagProps, Menu, MenuItem, Popover, Position, Tag } from "@blueprintjs/core"; import { IconNames } from "@blueprintjs/icons"; import React, { MouseEvent } from "react"; import styled from "styled-components"; import { INSTANCE_TYPES } from "../../constants"; import { getSearchFilterDisplayValue, SearchFilter } from "../../searchFilters"; import { getTypeDisplayString } from "../../util"; const SearchFilterContainer = styled.div` margin: 10px 0 0 0; `; const TagContainer = styled.div` display: flex; flex-direction: row; justify-items: flex-start; margin-bottom: 5px; `; const StyledTag = styled(Tag)` margin-left: 5px; `; interface SearchFiltersProps { selectedFilters: SearchFilter[]; selectFilter: (filter: SearchFilter) => void; deselectFilter: (e: MouseEvent, props: ITagProps) => void; } const SearchFilters: React.FC = ({ selectedFilters, selectFilter, deselectFilter }) => { const hasInstanceTypeFilter = selectedFilters.some((sf) => sf.field === "type"); const handleSelectInstanceType = (e: MouseEvent) => { const field = "type"; const relation = "eq"; const value = e.currentTarget.innerText.toLowerCase().replace(" ", ""); const filter: SearchFilter = { displayValue: getSearchFilterDisplayValue(field, relation, value), field, relation, value, }; selectFilter(filter); }; const renderMenu = () => ( {INSTANCE_TYPES.map((t) => ( ))} ); return ( {selectedFilters.map((filter) => ( {filter.displayValue} ))} ); }; export default SearchFilters;