X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/b6ac7fe88d347582d39fffa002e300af222c578f..486b1bf637827063cdedef283907da2dcc63ad22:/src/views/collection-content-address-panel/collection-content-address-panel.tsx diff --git a/src/views/collection-content-address-panel/collection-content-address-panel.tsx b/src/views/collection-content-address-panel/collection-content-address-panel.tsx index 13e131b0..f1278049 100644 --- a/src/views/collection-content-address-panel/collection-content-address-panel.tsx +++ b/src/views/collection-content-address-panel/collection-content-address-panel.tsx @@ -7,7 +7,6 @@ import { StyleRulesCallback, WithStyles, withStyles, - Grid, Button } from '@material-ui/core'; import { CollectionIcon } from 'components/icon/icon'; @@ -34,8 +33,11 @@ import { ResourceLastModifiedDate, ResourceStatus } from 'views-components/data-explorer/renderers'; +import { getResource, ResourcesState } from 'store/resources/resources'; +import { RootState } from 'store/store'; +import { CollectionResource } from 'models/collection'; -type CssRules = 'backLink' | 'backIcon' | 'card' | 'title' | 'iconHeader' | 'link'; +type CssRules = 'backLink' | 'backIcon' | 'root' | 'content'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ backLink: { @@ -50,24 +52,13 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ backIcon: { marginRight: theme.spacing.unit }, - card: { - width: '100%' + root: { + width: '100%', }, - title: { - color: theme.palette.grey["700"] + content: { + // reserve space for the content address bar + height: `calc(100% - ${theme.spacing.unit * 7}px)`, }, - iconHeader: { - fontSize: '1.875rem', - color: theme.customs.colors.green700 - }, - link: { - fontSize: '0.875rem', - color: theme.palette.primary.main, - textAlign: 'right', - '&:hover': { - cursor: 'pointer' - } - } }); enum CollectionContentAddressPanelColumnNames { @@ -110,18 +101,29 @@ export const collectionContentAddressPanelColumns: DataColumns = [ } ]; -export interface CollectionContentAddressPanelActionProps { - onContextMenu: (event: React.MouseEvent, uuid: string) => void; +interface CollectionContentAddressPanelActionProps { + onContextMenu: (resources: ResourcesState) => (event: React.MouseEvent, uuid: string) => void; onItemClick: (item: string) => void; onItemDoubleClick: (item: string) => void; } +interface CollectionContentAddressPanelDataProps { + resources: ResourcesState; +} + +const mapStateToProps = ({ resources }: RootState): CollectionContentAddressPanelDataProps => ({ + resources +}) + const mapDispatchToProps = (dispatch: Dispatch): CollectionContentAddressPanelActionProps => ({ - onContextMenu: (event, resourceUuid) => { + onContextMenu: (resources: ResourcesState) => (event, resourceUuid) => { + const resource = getResource(resourceUuid)(resources); const kind = dispatch(resourceUuidToContextMenuKind(resourceUuid)); if (kind) { dispatch(openContextMenu(event, { - name: '', + name: resource ? resource.name : '', + description: resource ? resource.description : '', + storageClassesDesired: resource ? resource.storageClassesDesired : [], uuid: resourceUuid, ownerUuid: '', kind: ResourceKind.NONE, @@ -145,30 +147,30 @@ interface CollectionContentAddressDataProps { } export const CollectionsContentAddressPanel = withStyles(styles)( - connect(null, mapDispatchToProps)( - class extends React.Component> { + connect(mapStateToProps, mapDispatchToProps)( + class extends React.Component> { render() { - return + return
- - } />; - ; + } />
+ ; } } )