Add size info and preview to FileDetails
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Fri, 28 Dec 2018 11:37:09 +0000 (12:37 +0100)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Fri, 28 Dec 2018 11:37:09 +0000 (12:37 +0100)
Feature #14684

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/views-components/details-panel/file-details.tsx

index 86c63eb35b685658c0d54c3f5a18a3505a120977..7d43bd4b3b331448668817c38f8e552553e33da6 100644 (file)
@@ -4,8 +4,11 @@
 
 import * as React from 'react';
 import { DetailsData } from "./details-data";
-import { CollectionFile, CollectionDirectory } from '~/models/collection-file';
+import { CollectionFile, CollectionDirectory, CollectionFileType } from '~/models/collection-file';
 import { getIcon } from '~/components/file-tree/file-tree-item';
+import { DetailsAttribute } from '~/components/details-attribute/details-attribute';
+import { formatFileSize } from '~/common/formatters';
+import { FileThumbnail } from '~/components/file-tree/file-thumbnail';
 
 export class FileDetails extends DetailsData<CollectionFile | CollectionDirectory> {
 
@@ -15,6 +18,13 @@ export class FileDetails extends DetailsData<CollectionFile | CollectionDirector
     }
 
     getDetails() {
-        return <div>File details</div>;
+        const { item } = this;
+        return item.type === CollectionFileType.FILE
+            ? <>
+                <DetailsAttribute label='Size' value={formatFileSize(item.size)} />
+                <DetailsAttribute label='Preview' />
+                <FileThumbnail file={item}/>
+            </>
+            : <div />;
     }
 }