import React from "react"; import PropTypes from "prop-types"; import { inject, observer } from "mobx-react"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faTimes } from "@fortawesome/free-solid-svg-icons/faTimes"; import { AlertStore } from "Stores/AlertStore"; import { QueryOperators, FormatQuery } from "Common/Query"; import { TooltipWrapper } from "Components/TooltipWrapper"; import { BaseLabel } from "Components/Labels/BaseLabel"; import "./index.scss"; const LabelWithPercent = inject("alertStore")( observer( class LabelWithPercent extends BaseLabel { static propTypes = { alertStore: PropTypes.instanceOf(AlertStore).isRequired, name: PropTypes.string.isRequired, value: PropTypes.string.isRequired, hits: PropTypes.number.isRequired, percent: PropTypes.number.isRequired, offset: PropTypes.number.isRequired, isActive: PropTypes.bool.isRequired }; removeFromFilters = () => { const { alertStore, name, value } = this.props; alertStore.filters.removeFilter( FormatQuery(name, QueryOperators.Equal, value) ); }; render() { const { name, value, hits, percent, offset, isActive } = this.props; let cs = this.getClassAndStyle( name, value, "components-label-with-hover mb-0 pl-0 text-left" ); const progressBarBg = percent > 66 ? "bg-danger" : percent > 33 ? "bg-warning" : "bg-success"; return ( {hits} this.handleClick(e)}> {name}:{" "} {value} {isActive ? ( ) : null}
{offset === 0 ? null : (
)}
); } } ) ); export { LabelWithPercent };