🔧 Added visibility filters to the metadata tabs on comic details page

This commit is contained in:
2022-02-28 13:42:02 -08:00
parent e4b04c51eb
commit ffb5d73ab8
3 changed files with 47 additions and 26 deletions

View File

@@ -134,23 +134,50 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => {
content: isComicBookMetadataAvailable ? ( content: isComicBookMetadataAvailable ? (
<VolumeInformation data={comicBookDetailData} key={1} /> <VolumeInformation data={comicBookDetailData} key={1} />
) : null, ) : null,
include: isComicBookMetadataAvailable,
}, },
{ {
id: 2, id: 2,
icon: <i className="fa-regular fa-file-archive"></i>, name: "ComicInfo.xml",
name: "Archive Operations", icon: <i className="fa-solid fa-code"></i>,
content: <ArchiveOperations data={comicBookDetailData} key={2} />, content: (
<div className="columns" key={2}>
<div className="column is-three-quarters">
{!isNil(comicBookDetailData.sourcedMetadata) &&
!isNil(comicBookDetailData.sourcedMetadata.comicInfo) && (
<pre className="has-text-size-7">
{JSON.stringify(
comicBookDetailData.sourcedMetadata.comicInfo,
null,
2,
)}
</pre>
)}
</div>
</div>
),
include:
!isNil(comicBookDetailData.sourcedMetadata) &&
!isEmpty(comicBookDetailData.sourcedMetadata.comicInfo),
}, },
{ {
id: 3, id: 3,
icon: <i className="fa-solid fa-floppy-disk"></i>, icon: <i className="fa-regular fa-file-archive"></i>,
name: "Acquisition", name: "Archive Operations",
content: ( content: <ArchiveOperations data={comicBookDetailData} key={3} />,
<AcquisitionPanel comicBookMetadata={comicBookDetailData} key={3} /> include: !isNil(comicBookDetailData.rawFileDetails),
),
}, },
{ {
id: 4, id: 4,
icon: <i className="fa-solid fa-floppy-disk"></i>,
name: "Acquisition",
content: (
<AcquisitionPanel comicBookMetadata={comicBookDetailData} key={4} />
),
include: !isNil(comicBookDetailData.rawFileDetails),
},
{
id: 5,
icon: null, icon: null,
name: name:
!isNil(comicBookDetailData) && !isEmpty(comicBookDetailData) ? ( !isNil(comicBookDetailData) && !isEmpty(comicBookDetailData) ? (
@@ -162,18 +189,21 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => {
<DownloadsPanel <DownloadsPanel
data={comicBookDetailData.acquisition.directconnect} data={comicBookDetailData.acquisition.directconnect}
comicObjectId={comicObjectId} comicObjectId={comicObjectId}
key={4} key={5}
/> />
), ),
include: !isNil(comicBookDetailData.rawFileDetails),
}, },
]; ];
// Tabs // Tabs
const MetadataTabGroup = () => { const MetadataTabGroup = () => {
const filteredTabs = tabGroup.filter((tab) => tab.include);
console.log("filter:m", filteredTabs);
return ( return (
<> <>
<div className="tabs"> <div className="tabs">
<ul> <ul>
{tabGroup.map(({ id, name, icon }) => ( {filteredTabs.map(({ id, name, icon }) => (
<li <li
key={id} key={id}
className={id === active ? "is-active" : ""} className={id === active ? "is-active" : ""}
@@ -199,7 +229,7 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => {
))} ))}
</ul> </ul>
</div> </div>
{tabGroup.map(({ id, content }) => { {filteredTabs.map(({ id, content }) => {
return active === id ? content : null; return active === id ? content : null;
})} })}
</> </>
@@ -254,15 +284,6 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => {
inferredMetadata: comicBookDetailData.inferredMetadata, inferredMetadata: comicBookDetailData.inferredMetadata,
}} }}
/> />
{!isNil(comicBookDetailData.sourcedMetadata.comicInfo) && (
<div className="box">
<pre className="has-text-size-7">
{JSON.stringify(
comicBookDetailData.sourcedMetadata, null, 2
)}
</pre>
</div>
)}
</> </>
)} )}
{/* comic vine scraped metadata */} {/* comic vine scraped metadata */}
@@ -275,7 +296,7 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => {
</div> </div>
</div> </div>
{isComicBookMetadataAvailable ? <MetadataTabGroup /> : null} {<MetadataTabGroup />}
<SlidingPane <SlidingPane
isOpen={visible} isOpen={visible}

View File

@@ -37,8 +37,8 @@ export const RawFileDetails = (props): ReactElement => {
</div> </div>
</dd> </dd>
{/* inferred metadata */} {/* inferred metadata */}
<dd className="mt-3"> <dt className="mt-3">Inferred Issue Metadata</dt>
<dt>Inferred Issue Metadata</dt> <dd>
<div className="field is-grouped mt-2"> <div className="field is-grouped mt-2">
<div className="control"> <div className="control">
<div className="tags has-addons"> <div className="tags has-addons">

View File

@@ -92,16 +92,16 @@ export const Dashboard = (): ReactElement => {
!isEmpty(libraryStatistics.statistics[0].fileTypes) && !isEmpty(libraryStatistics.statistics[0].fileTypes) &&
map( map(
libraryStatistics.statistics[0].fileTypes, libraryStatistics.statistics[0].fileTypes,
(fileType) => { (fileType, idx) => {
return ( return (
<> <span key={idx}>
<span className="has-text-weight-bold"> <span className="has-text-weight-bold">
{fileType.data.length} {fileType.data.length}
</span> </span>
<span className="tag is-warning has-text-weight-bold mr-2 ml-1"> <span className="tag is-warning has-text-weight-bold mr-2 ml-1">
{fileType._id} {fileType._id}
</span> </span>
</> </span>
); );
}, },
)} )}