|
Packit Service |
0246ed |
import React from "react";
|
|
Packit Service |
0246ed |
import { defineMessages, injectIntl, intlShape } from "react-intl";
|
|
Packit Service |
0246ed |
import PropTypes from "prop-types";
|
|
Packit Service |
0246ed |
import shortid from "shortid";
|
|
Packit Service |
0246ed |
import {
|
|
Packit Service |
0246ed |
DataList,
|
|
Packit Service |
0246ed |
DataListItem,
|
|
Packit Service |
0246ed |
DataListItemRow,
|
|
Packit Service |
0246ed |
DataListCell,
|
|
Packit Service |
0246ed |
DataListItemCells,
|
|
Packit Service |
0246ed |
Tooltip,
|
|
Packit Service |
0246ed |
TooltipPosition,
|
|
Packit Service |
0246ed |
} from "@patternfly/react-core";
|
|
Packit Service |
0246ed |
import ComponentTypeIcons from "./ComponentTypeIcons";
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
const messages = defineMessages({
|
|
Packit Service |
0246ed |
hideDetails: {
|
|
Packit Service |
0246ed |
defaultMessage: "Hide Details",
|
|
Packit Service |
0246ed |
},
|
|
Packit Service |
0246ed |
showDetails: {
|
|
Packit Service |
0246ed |
defaultMessage: "Show Details and More Options",
|
|
Packit Service |
0246ed |
},
|
|
Packit Service |
0246ed |
addComponent: {
|
|
Packit Service |
0246ed |
defaultMessage: "Add latest version",
|
|
Packit Service |
0246ed |
},
|
|
Packit Service |
0246ed |
removeComponent: {
|
|
Packit Service |
0246ed |
defaultMessage: "Remove Component from Blueprint",
|
|
Packit Service |
0246ed |
},
|
|
Packit Service |
0246ed |
});
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
// eslint-disable-next-line react/prefer-stateless-function
|
|
Packit Service |
0246ed |
class ComponentInputs extends React.Component {
|
|
Packit Service |
0246ed |
render() {
|
|
Packit Service |
0246ed |
const { components, label } = this.props;
|
|
Packit Service |
0246ed |
const { formatMessage } = this.props.intl;
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
return (
|
|
Packit Service |
0246ed |
<DataList aria-label={label} data-list="inputs" className="cc-m-compact">
|
|
Packit Service |
0246ed |
{components.map((component) => (
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
key={shortid.generate()}
|
|
Packit Service |
0246ed |
aria-labelledby={`${component.name}-input`}
|
|
Packit Service |
0246ed |
className={component.active ? "active" : ""}
|
|
Packit Service |
0246ed |
data-input={component.name}
|
|
Packit Service |
0246ed |
>
|
|
Packit Service |
0246ed |
<DataListItemRow>
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
componentType={component.ui_type}
|
|
Packit Service |
0246ed |
componentInBlueprint={component.inBlueprint}
|
|
Packit Service |
0246ed |
isSelected={component.userSelected}
|
|
Packit Service |
0246ed |
/>
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
dataListCells={[
|
|
Packit Service |
0246ed |
<DataListCell key="primary">
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
position={TooltipPosition.top}
|
|
Packit Service |
0246ed |
content={
|
|
Packit Service |
0246ed |
component.active ? formatMessage(messages.hideDetails) : formatMessage(messages.showDetails)
|
|
Packit Service |
0246ed |
}
|
|
Packit Service |
0246ed |
>
|
|
Packit Service |
0246ed |
this.props.handleComponentDetails(e, component)}>
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
{component.name}
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
</Tooltip>
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
{component.summary}
|
|
Packit Service |
0246ed |
</DataListCell>,
|
|
Packit Service |
0246ed |
]}
|
|
Packit Service |
0246ed |
/>
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
{(component.inBlueprint === true && component.userSelected === true && (
|
|
Packit Service |
0246ed |
<Tooltip position={TooltipPosition.top} content={formatMessage(messages.removeComponent)}>
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
href="#"
|
|
Packit Service |
0246ed |
className="btn btn-link"
|
|
Packit Service |
0246ed |
onClick={(e) => this.props.handleRemoveComponent(e, component.name)}
|
|
Packit Service |
0246ed |
>
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
</Tooltip>
|
|
Packit Service |
0246ed |
)) || (
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
position={TooltipPosition.top}
|
|
Packit Service |
0246ed |
content={
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
{formatMessage(messages.addComponent)}
|
|
Packit Service |
0246ed |
({component.version})
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
}
|
|
Packit Service |
0246ed |
>
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
href="#"
|
|
Packit Service |
0246ed |
className="btn btn-link"
|
|
Packit Service |
0246ed |
onClick={(e) => this.props.handleAddComponent(e, component, "*")}
|
|
Packit Service |
0246ed |
>
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
</Tooltip>
|
|
Packit Service |
0246ed |
)}
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
</DataListItemRow>
|
|
Packit Service |
0246ed |
</DataListItem>
|
|
Packit Service |
0246ed |
))}
|
|
Packit Service |
0246ed |
</DataList>
|
|
Packit Service |
0246ed |
);
|
|
Packit Service |
0246ed |
}
|
|
Packit Service |
0246ed |
}
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
ComponentInputs.propTypes = {
|
|
Packit Service |
0246ed |
components: PropTypes.arrayOf(PropTypes.object),
|
|
Packit Service |
0246ed |
label: PropTypes.string,
|
|
Packit Service |
0246ed |
handleComponentDetails: PropTypes.func,
|
|
Packit Service |
0246ed |
handleAddComponent: PropTypes.func,
|
|
Packit Service |
0246ed |
handleRemoveComponent: PropTypes.func,
|
|
Packit Service |
0246ed |
intl: intlShape.isRequired,
|
|
Packit Service |
0246ed |
};
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
ComponentInputs.defaultProps = {
|
|
Packit Service |
0246ed |
components: [],
|
|
Packit Service |
0246ed |
label: "",
|
|
Packit Service |
0246ed |
handleComponentDetails() {},
|
|
Packit Service |
0246ed |
handleAddComponent() {},
|
|
Packit Service |
0246ed |
handleRemoveComponent() {},
|
|
Packit Service |
0246ed |
};
|
|
Packit Service |
0246ed |
|
|
Packit Service |
0246ed |
export default injectIntl(ComponentInputs);
|