|
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);
|