From: Michal Klobukowski Date: Tue, 10 Jul 2018 09:09:08 +0000 (+0200) Subject: merge changes X-Git-Tag: 1.2.0~54^2~2 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/d8c787ee061c3953628362f5eb6c37123f5ca0f5 merge changes Feature #13765 Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski --- d8c787ee061c3953628362f5eb6c37123f5ca0f5 diff --cc src/views-components/details-panel/details-panel.tsx index 13498f33,6bf04c4f..b29e1902 --- a/src/views-components/details-panel/details-panel.tsx +++ b/src/views-components/details-panel/details-panel.tsx @@@ -13,15 -13,8 +13,15 @@@ import Tab from '@material-ui/core/Tab' import Typography from '@material-ui/core/Typography'; import Grid from '@material-ui/core/Grid'; import * as classnames from "classnames"; +import { connect, Dispatch } from 'react-redux'; import EmptyState from '../../components/empty-state/empty-state'; - import IconBase from '../../components/icon/icon'; +import { RootState } from '../../store/store'; +import actions from "../../store/details-panel/details-panel-action"; +import { Resource } from '../../common/api/common-resource-service'; +import { ResourceKind } from '../../models/kinds'; +import { ProjectResource } from '../../models/project'; +import { CollectionResource } from '../../models/collection'; + import IconBase, { IconTypes } from '../../components/icon/icon'; export interface DetailsPanelDataProps { onCloseDrawer: () => void; @@@ -53,18 -46,24 +53,18 @@@ class DetailsPanel extends React.Compon return ( - - - {renderHeader} - {/* TODO: renderHeader */} - - - Tutorial pipeline - - {/* End */} + + + {header} - + - - - - - - - + + + + + + + {tabsValue === 0 && this.renderTabContainer( {renderDetails} @@@ -83,9 -82,9 +83,9 @@@ {tabsValue === 1 && this.renderTabContainer( {renderActivity} - + - )} + )} ); @@@ -118,50 -117,10 +118,50 @@@ const styles: StyleRulesCallback + <> - ++ + + {collection.name} + + ; + +const renderProjectHeader = (project: ProjectResource) => + <> - ++ + + {project.name} + + ; + +const renderHeader = (resource: Resource) => { + switch(resource.kind) { + case ResourceKind.Project: + return renderProjectHeader(resource as ProjectResource); + case ResourceKind.Collection: + return renderCollectionHeader(resource as CollectionResource); + default: + return null; + } +}; + +const mapStateToProps = ({detailsPanel}: RootState) => ({ + isOpened: detailsPanel.isOpened, + header: detailsPanel.item ? renderHeader(detailsPanel.item) : null +}); + +const mapDispatchToProps = (dispatch: Dispatch) => ({ + onCloseDrawer: () => { + dispatch(actions.TOGGLE_DETAILS_PANEL()); + } +}); + +const DetailsPanelContainer = connect(mapStateToProps, mapDispatchToProps)(DetailsPanel); + +export default withStyles(styles)(DetailsPanelContainer);