From: Lucas Di Pentima Date: Fri, 8 Oct 2021 19:11:16 +0000 (-0300) Subject: 18128: Show [X] close button on individual panels. X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/8ff2ace73eab152113f8eec5027a302df48d31a5?ds=sidebyside 18128: Show [X] close button on individual panels. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- diff --git a/src/components/data-explorer/data-explorer.tsx b/src/components/data-explorer/data-explorer.tsx index d272e870bf..940dbd0a50 100644 --- a/src/components/data-explorer/data-explorer.tsx +++ b/src/components/data-explorer/data-explorer.tsx @@ -11,7 +11,7 @@ import { SearchInput } from 'components/search-input/search-input'; import { ArvadosTheme } from "common/custom-theme"; import { createTree } from 'models/tree'; import { DataTableFilters } from 'components/data-table-filters/data-table-filters-tree'; -import { MoreOptionsIcon } from 'components/icon/icon'; +import { CloseIcon, MoreOptionsIcon } from 'components/icon/icon'; import { PaperProps } from '@material-ui/core/Paper'; type CssRules = 'searchBox' | "toolbar" | "toolbarUnderTitle" | "footer" | "root" | 'moreOptionsButton' | 'title'; @@ -62,6 +62,7 @@ interface DataExplorerDataProps { title?: React.ReactNode; paperKey?: string; currentItemUuid: string; + panelName?: string } interface DataExplorerActionProps { @@ -77,6 +78,7 @@ interface DataExplorerActionProps { onChangeRowsPerPage: (rowsPerPage: number) => void; onLoadMore: (page: number) => void; extractKey?: (item: T) => React.Key; + doHidePanel?: () => void; } type DataExplorerProps = DataExplorerDataProps & DataExplorerActionProps & WithStyles; @@ -94,7 +96,7 @@ export const DataExplorer = withStyles(styles)( rowsPerPage, rowsPerPageOptions, onColumnToggle, searchLabel, searchValue, onSearch, items, itemsAvailable, onRowClick, onRowDoubleClick, classes, dataTableDefaultView, hideColumnSelector, actions, paperProps, hideSearchInput, - paperKey, fetchMode, currentItemUuid, title + paperKey, fetchMode, currentItemUuid, title, doHidePanel, panelName } = this.props; return {title &&
{title}
} @@ -111,6 +113,10 @@ export const DataExplorer = withStyles(styles)( columns={columns} onColumnToggle={onColumnToggle} />} + { doHidePanel && + + + } } void; openWorkflow: (uuid: string) => void; cancelProcess: (uuid: string) => void; + doHidePanel?: () => void; + panelName?: string; } type ProcessInformationCardProps = ProcessInformationCardDataProps & WithStyles; export const ProcessInformationCard = withStyles(styles, { withTheme: true })( - ({ classes, process, onContextMenu, theme, openProcessInputDialog, navigateToOutput, openWorkflow, cancelProcess }: ProcessInformationCardProps) => { + ({ classes, process, onContextMenu, theme, openProcessInputDialog, navigateToOutput, openWorkflow, cancelProcess, doHidePanel, panelName }: ProcessInformationCardProps) => { const { container } = process; const startedAt = container ? formatDate(container.startedAt) : 'N/A'; const finishedAt = container ? formatDate(container.finishedAt) : 'N/A'; @@ -111,6 +113,10 @@ export const ProcessInformationCard = withStyles(styles, { withTheme: true })( + { doHidePanel && + + + } } title={ diff --git a/src/views/process-panel/process-panel-root.tsx b/src/views/process-panel/process-panel-root.tsx index 242349b5dc..045e5cfa4a 100644 --- a/src/views/process-panel/process-panel-root.tsx +++ b/src/views/process-panel/process-panel-root.tsx @@ -10,7 +10,7 @@ import { ProcessIcon } from 'components/icon/icon'; import { Process } from 'store/processes/process'; import { SubprocessPanel } from 'views/subprocess-panel/subprocess-panel'; import { SubprocessFilterDataProps } from 'components/subprocess-filter/subprocess-filter'; -import { MPVContainer } from 'components/multi-panel-view/multi-panel-view'; +import { MPVContainer, MPVPanelContent } from 'components/multi-panel-view/multi-panel-view'; export interface ProcessPanelRootDataProps { process?: Process; @@ -32,7 +32,7 @@ export type ProcessPanelRootProps = ProcessPanelRootDataProps & ProcessPanelRoot export const ProcessPanelRoot = ({ process, ...props }: ProcessPanelRootProps) => process ? - + props.onContextMenu(event, process)} @@ -41,10 +41,10 @@ export const ProcessPanelRoot = ({ process, ...props }: ProcessPanelRootProps) = openWorkflow={props.navigateToWorkflow} cancelProcess={props.cancelProcess} /> - - + + - + : = [ export interface SubprocessPanelDataProps { resources: ResourcesState; + panelName?: string; } export interface SubprocessPanelActionProps { onItemClick: (item: string) => void; onContextMenu: (event: React.MouseEvent, item: string, resources: ResourcesState) => void; onItemDoubleClick: (item: string) => void; + doHidePanel?: () => void; } type SubprocessPanelProps = SubprocessPanelActionProps & SubprocessPanelDataProps; @@ -91,5 +93,7 @@ export const SubprocessPanelRoot = (props: SubprocessPanelProps) => { - } />; + } + doHidePanel={props.doHidePanel} + panelName={props.panelName} />; }; \ No newline at end of file