From a156f07598f0a44c605ea940d9e4e22f75dcef51 Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Tue, 24 May 2022 11:06:55 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Metadata=20Panel=20WIP=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/components/Library/Library.tsx | 75 ++++++++++++++----- .../components/shared/MetadataPanel.tsx | 31 +++++++- 2 files changed, 84 insertions(+), 22 deletions(-) diff --git a/src/client/components/Library/Library.tsx b/src/client/components/Library/Library.tsx index f938611..701e461 100644 --- a/src/client/components/Library/Library.tsx +++ b/src/client/components/Library/Library.tsx @@ -11,10 +11,12 @@ import T2Table from "../shared/T2Table"; import { isEmpty, isNil, isUndefined } from "lodash"; import RawFileDetails from "./RawFileDetails"; import ComicVineDetails from "./ComicVineDetails"; +import MetadataPanel from "../shared/MetadataPanel"; import SearchBar from "./SearchBar"; import { useDispatch } from "react-redux"; import { searchIssue } from "../../actions/fileops.actions"; import ellipsize from "ellipsize"; +import { determineCoverFile } from "../../shared/utils/metadata.utils"; interface IComicBookLibraryProps { data: { @@ -82,26 +84,61 @@ export const Library = (data: IComicBookLibraryProps): ReactElement => { Header: "File Details", id: "fileDetails", minWidth: 400, - accessor: (row) => - !isEmpty(row._source.rawFileDetails) - ? { - rawFileDetails: row._source.rawFileDetails, - inferredMetadata: row._source.inferredMetadata, - } - : row._source.sourcedMetadata, + accessor: "_source", Cell: ({ value }) => { - // If no CV info available, use raw file metadata - if ( - !isUndefined(value.rawFileDetails) && - !isEmpty(value.rawFileDetails.cover) - ) { - return ; - } - // If CV metadata available, show it - if (!isNil(value.comicvine)) { - return ; - } - return
null
; + const { + rawFileDetails, + sourcedMetadata: { comicvine, locg }, + } = value; + const { issueName, url } = determineCoverFile({ + comicvine, + locg, + rawFileDetails, + }); + + return ( + +
+ {/*
+
+
+ {rawFileDetails.name} +
+
+
+ Is a part of{" "} + + {inferredMetadata.issue.name} + +
+ +
+
+
+ + + {rawFileDetails.extension} + + + {prettyBytes(rawFileDetails.fileSize)} + + +
+
+ {inferredMetadata.issue.number && ( +
+ Issue # + + {inferredMetadata.issue.number} + +
+ )} +
+
+
+
*/} +
+ ); }, }, { diff --git a/src/client/components/shared/MetadataPanel.tsx b/src/client/components/shared/MetadataPanel.tsx index 8dd9320..99074ff 100644 --- a/src/client/components/shared/MetadataPanel.tsx +++ b/src/client/components/shared/MetadataPanel.tsx @@ -1,3 +1,4 @@ +import React, { ReactElement } from "react"; import PropTypes from "prop-types"; import ellipsize from "ellipsize"; import convert from "html-to-text"; @@ -7,11 +8,35 @@ import { LIBRARY_SERVICE_HOST } from "../../constants/endpoints"; import { Card } from "../Carda"; interface IMetadatPanelProps { - - } + value: any; + children: any; +} export const MetadataPanel = (props: IMetadatPanelProps): ReactElement => { - + console.log(props) + return ( +
+
+
+
+
+
+
+ +
+
{props.children}
+
+
+
+
+
+
+ ); }; export default MetadataPanel;