Blame components/ListView/ComponentSummaryList.js

Packit Service eebd6f
import React from "react";
Packit Service eebd6f
import { defineMessages, injectIntl, intlShape, FormattedMessage } from "react-intl";
Packit Service eebd6f
import PropTypes from "prop-types";
Packit Service eebd6f
import {
Packit Service eebd6f
  Split,
Packit Service eebd6f
  SplitItem,
Packit Service eebd6f
  Button,
Packit Service eebd6f
  DataList,
Packit Service eebd6f
  DataListItem,
Packit Service eebd6f
  DataListItemRow,
Packit Service eebd6f
  DataListCell,
Packit Service eebd6f
  DataListItemCells,
Packit Service eebd6f
} from "@patternfly/react-core";
Packit Service eebd6f
import ComponentTypeIcons from "./ComponentTypeIcons";
Packit Service eebd6f
Packit Service eebd6f
const messages = defineMessages({
Packit Service eebd6f
  dependencies: {
Packit Service eebd6f
    defaultMessage: "Dependencies",
Packit Service eebd6f
  },
Packit Service eebd6f
});
Packit Service eebd6f
Packit Service eebd6f
class ComponentSummaryList extends React.Component {
Packit Service eebd6f
  constructor() {
Packit Service eebd6f
    super();
Packit Service eebd6f
    this.state = { showAll: false };
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  handleShowAll(event) {
Packit Service eebd6f
    // the user clicked a list item in the blueprint contents area to expand or collapse
Packit Service eebd6f
    this.setState((prevState) => ({ showAll: !prevState.showAll }));
Packit Service eebd6f
    event.preventDefault();
Packit Service eebd6f
    event.stopPropagation();
Packit Service eebd6f
  }
Packit Service eebd6f
Packit Service eebd6f
  render() {
Packit Service eebd6f
    const listItems = this.state.showAll ? this.props.listItems : this.props.listItems.slice(0, 5);
Packit Service eebd6f
    const { formatMessage } = this.props.intl;
Packit Service eebd6f
    return (
Packit Service eebd6f
      
Packit Service 0c2606
        <Split hasGutter className="pf-m-spacer-sm">
Packit Service eebd6f
          <SplitItem isFilled>
Packit Service eebd6f
            
Packit Service eebd6f
              <FormattedMessage defaultMessage="Dependencies" />
Packit Service eebd6f
            
Packit Service eebd6f
            {this.props.listItems.length}
Packit Service eebd6f
          </SplitItem>
Packit Service eebd6f
          <SplitItem>
Packit Service eebd6f
            <Button variant="link" isInline onClick={(e) => this.handleShowAll(e)}>
Packit Service eebd6f
              {this.state.showAll ? (
Packit Service 904037
                <FormattedMessage defaultMessage="Show less" />
Packit Service eebd6f
              ) : (
Packit Service 904037
                <FormattedMessage defaultMessage="Show all" />
Packit Service eebd6f
              )}
Packit Service eebd6f
            </Button>
Packit Service eebd6f
          </SplitItem>
Packit Service eebd6f
        </Split>
Packit Service eebd6f
        <DataList aria-label={formatMessage(messages.dependencies)} className="cc-m-compact">
Packit Service eebd6f
          {listItems.map((listItem) => (
Packit Service eebd6f
            <DataListItem key={listItem.name} aria-labelledby={`${this.props.parent}-${listItem.name}`}>
Packit Service eebd6f
              <DataListItemRow>
Packit Service eebd6f
                
Packit Service eebd6f
                  
Packit Service eebd6f
                    componentType={listItem.ui_type}
Packit Service eebd6f
                    componentInBlueprint={listItem.inBlueprint}
Packit Service eebd6f
                    isSelected={listItem.userSelected}
Packit Service eebd6f
                  />
Packit Service eebd6f
                
Packit Service eebd6f
                
Packit Service eebd6f
                  dataListCells={[
Packit Service eebd6f
                    <DataListCell key="primary" id={`${this.props.parent}-${listItem.name}`}>
Packit Service eebd6f
                      {listItem.name}
Packit Service eebd6f
                    </DataListCell>,
Packit Service eebd6f
                  ]}
Packit Service eebd6f
                />
Packit Service eebd6f
              </DataListItemRow>
Packit Service eebd6f
            </DataListItem>
Packit Service eebd6f
          ))}
Packit Service eebd6f
        </DataList>
Packit Service eebd6f
      
Packit Service eebd6f
    );
Packit Service eebd6f
  }
Packit Service eebd6f
}
Packit Service eebd6f
Packit Service eebd6f
ComponentSummaryList.propTypes = {
Packit Service eebd6f
  listItems: PropTypes.arrayOf(PropTypes.object),
Packit Service eebd6f
  parent: PropTypes.string,
Packit Service eebd6f
  intl: intlShape.isRequired,
Packit Service eebd6f
};
Packit Service eebd6f
Packit Service eebd6f
ComponentSummaryList.defaultProps = {
Packit Service eebd6f
  listItems: [],
Packit Service eebd6f
  parent: "",
Packit Service eebd6f
};
Packit Service eebd6f
Packit Service eebd6f
export default injectIntl(ComponentSummaryList);