Blame components/Toolbar/ToolbarLayout.js

Packit Service eebd6f
import React from "react";
Packit Service eebd6f
import { defineMessages, FormattedMessage, intlShape, injectIntl } from "react-intl";
Packit Service eebd6f
import PropTypes from "prop-types";
Packit Service eebd6f
import { Filter, Toolbar } from "patternfly-react";
Packit Service eebd6f
Packit Service eebd6f
const messages = defineMessages({
Packit Service eebd6f
  filterNameTitle: {
Packit Service eebd6f
    defaultMessage: "Name",
Packit Service eebd6f
  },
Packit Service eebd6f
  filterReleaseTitle: {
Packit Service eebd6f
    defaultMessage: "Release",
Packit Service eebd6f
  },
Packit Service eebd6f
  filterVersionTitle: {
Packit Service eebd6f
    defaultMessage: "Version",
Packit Service eebd6f
  },
Packit Service eebd6f
});
Packit Service eebd6f
Packit Service eebd6f
class ToolbarLayout extends React.Component {
Packit Service eebd6f
  constructor() {
Packit Service eebd6f
    super();
Packit Service eebd6f
    this.handleRemoveFilter = this.handleRemoveFilter.bind(this);
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  handleRemoveFilter(filter) {
Packit Service eebd6f
    this.props.filterRemoveValue(filter);
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  render() {
Packit Service eebd6f
    const { filters, children, filterClearValues } = this.props;
Packit Service eebd6f
    const { formatMessage } = this.props.intl;
Packit Service eebd6f
Packit Service eebd6f
    const filterItem = (filter) => {
Packit Service eebd6f
      switch (filter.key) {
Packit Service eebd6f
        case "name":
Packit Service eebd6f
          return (
Packit Service eebd6f
            <Filter.Item key={`${filter.key}-${filter.value}`} onRemove={this.handleRemoveFilter} filterData={filter}>
Packit Service eebd6f
              {formatMessage(messages.filterNameTitle)}: {filter.value}
Packit Service eebd6f
            </Filter.Item>
Packit Service eebd6f
          );
Packit Service eebd6f
        case "release":
Packit Service eebd6f
          return (
Packit Service eebd6f
            <Filter.Item key={`${filter.key}-${filter.value}`} onRemove={this.handleRemoveFilter} filterData={filter}>
Packit Service eebd6f
              {formatMessage(messages.filterReleaseTitle)}: {filter.value}
Packit Service eebd6f
            </Filter.Item>
Packit Service eebd6f
          );
Packit Service eebd6f
        case "version":
Packit Service eebd6f
          return (
Packit Service eebd6f
            <Filter.Item key={`${filter.key}-${filter.value}`} onRemove={this.handleRemoveFilter} filterData={filter}>
Packit Service eebd6f
              {formatMessage(messages.filterVersionTitle)}: {filter.value}
Packit Service eebd6f
            </Filter.Item>
Packit Service eebd6f
          );
Packit Service eebd6f
        default:
Packit Service eebd6f
          return null;
Packit Service eebd6f
      }
Packit Service eebd6f
    };
Packit Service eebd6f
Packit Service eebd6f
    return (
Packit Service eebd6f
      
Packit Service eebd6f
        
Packit Service eebd6f
          
{children}
Packit Service eebd6f
          {filters.filterValues && filters.filterValues.length !== 0 && (
Packit Service eebd6f
            <Toolbar.Results>
Packit Service eebd6f
              <Filter.ActiveLabel>
Packit Service 904037
                <FormattedMessage defaultMessage="Active filters" />:
Packit Service eebd6f
              </Filter.ActiveLabel>
Packit Service eebd6f
              <Filter.List>{filters.filterValues.map((filter) => filterItem(filter))}</Filter.List>
Packit Service eebd6f
              <button type="button" className="btn-link" onClick={filterClearValues}>
Packit Service 904037
                <FormattedMessage defaultMessage="Clear all filters" />
Packit Service eebd6f
              </button>
Packit Service eebd6f
            </Toolbar.Results>
Packit Service eebd6f
          )}
Packit Service eebd6f
        
Packit Service eebd6f
      
Packit Service eebd6f
    );
Packit Service eebd6f
  }
Packit Service eebd6f
}
Packit Service eebd6f
Packit Service eebd6f
ToolbarLayout.propTypes = {
Packit Service eebd6f
  filters: PropTypes.shape({
Packit Service eebd6f
    defaultFilterType: PropTypes.string,
Packit Service eebd6f
    filterTypes: PropTypes.arrayOf(PropTypes.object),
Packit Service eebd6f
    filterValues: PropTypes.arrayOf(PropTypes.object),
Packit Service eebd6f
  }),
Packit Service eebd6f
  filterRemoveValue: PropTypes.func,
Packit Service eebd6f
  filterClearValues: PropTypes.func,
Packit Service eebd6f
  children: PropTypes.node,
Packit Service eebd6f
  intl: intlShape.isRequired,
Packit Service eebd6f
};
Packit Service eebd6f
Packit Service eebd6f
ToolbarLayout.defaultProps = {
Packit Service eebd6f
  filters: {},
Packit Service eebd6f
  filterRemoveValue() {},
Packit Service eebd6f
  filterClearValues() {},
Packit Service eebd6f
  children: React.createElement("div"),
Packit Service eebd6f
};
Packit Service eebd6f
Packit Service eebd6f
export default injectIntl(ToolbarLayout);