X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/38d27e9783f7f760cee84cc225e86144069848c4..c952afae1af2fb31b68be04f70bd7ae6f9d52aba:/src/views-components/details-panel/details-panel.tsx diff --git a/src/views-components/details-panel/details-panel.tsx b/src/views-components/details-panel/details-panel.tsx index 38ac163e..399f4ef4 100644 --- a/src/views-components/details-panel/details-panel.tsx +++ b/src/views-components/details-panel/details-panel.tsx @@ -20,6 +20,8 @@ import { ProcessDetails } from "./process-details"; import { EmptyDetails } from "./empty-details"; import { DetailsData } from "./details-data"; import { DetailsResource } from "models/details"; +import { Config } from 'common/config'; +import { isInlineFileUrlSafe } from "../context-menu/actions/helpers"; import { getResource } from 'store/resources/resources'; import { toggleDetailsPanel, SLIDE_TIMEOUT, openDetailsPanel } from 'store/details-panel/details-panel-action'; import { FileDetails } from 'views-components/details-panel/file-details'; @@ -77,12 +79,13 @@ const getItem = (res: DetailsResource): DetailsData => { } }; -const mapStateToProps = ({ detailsPanel, resources, collectionPanelFiles }: RootState) => { +const mapStateToProps = ({ auth, detailsPanel, resources, collectionPanelFiles }: RootState) => { const resource = getResource(detailsPanel.resourceUuid)(resources) as DetailsResource | undefined; const file = resource ? undefined : getNode(detailsPanel.resourceUuid)(collectionPanelFiles); return { + authConfig: auth.config, isOpened: detailsPanel.isOpened, tabNr: detailsPanel.tabNr, res: resource || (file && file.value) || EMPTY_RESOURCE, @@ -101,6 +104,7 @@ const mapDispatchToProps = (dispatch: Dispatch) => ({ export interface DetailsPanelDataProps { onCloseDrawer: () => void; setActiveTab: (tabNr: number) => void; + authConfig: Config; isOpened: boolean; tabNr: number; res: DetailsResource; @@ -143,9 +147,20 @@ export const DetailsPanel = withStyles(styles)( } renderContent() { - const { classes, onCloseDrawer, res, tabNr } = this.props; + const { classes, onCloseDrawer, res, tabNr, authConfig } = this.props; + + let shouldShowInlinePreview = false; + if (!('kind' in res)) { + shouldShowInlinePreview = isInlineFileUrlSafe( + res ? res.url : "", + authConfig.keepWebServiceUrl, + authConfig.keepWebInlineServiceUrl + ) || authConfig.clusterConfig.Collections.TrustAllContent; + } + const item = getItem(res); return - {item.getDetails(tabNr)} + {item.getDetails({tabNr, showPreview: shouldShowInlinePreview})} ; }