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})}
;
}