import React, { ReactElement } from "react"; import Card from "../shared/Carda"; import { Link } from "react-router-dom"; import ellipsize from "ellipsize"; import { isEmpty, isNil, isUndefined, map } from "lodash"; import { detectIssueTypes } from "../../shared/utils/tradepaperback.utils"; import Masonry from "react-masonry-css"; import { determineCoverFile, determineExternalMetadata, } from "../../shared/utils/metadata.utils"; type RecentlyImportedProps = { comicBookCovers: any; }; export const RecentlyImported = ({ comicBookCovers, }: RecentlyImportedProps): ReactElement => { const breakpointColumnsObj = { default: 5, 1100: 4, 700: 2, 600: 2, }; return ( <>

Recently Imported

Recent Library activity such as imports, tagging, etc.

{map( comicBookCovers, ( { _id, rawFileDetails, sourcedMetadata: { comicvine, comicInfo, locg }, acquisition: { source: { name }, }, }, idx, ) => { const { issueName, url } = determineCoverFile({ rawFileDetails, comicvine, comicInfo, locg, }); const { issue, coverURL, icon } = determineExternalMetadata(name, { comicvine, comicInfo, locg, }); const isComicBookMetadataAvailable = !isUndefined(comicvine) && !isUndefined(comicvine.volumeInformation); const titleElement = ( {ellipsize(issueName, 20)} ); return (
{/* Raw file presence */} {isNil(rawFileDetails) && ( )} {/* ComicInfo.xml presence */} {!isNil(comicInfo) && !isEmpty(comicInfo) && ( {"ComicInfo.xml )} {/* ComicVine metadata presence */} {isComicBookMetadataAvailable && ( {"ComicVine )} {/* Issue type */} {isComicBookMetadataAvailable && !isNil( detectIssueTypes(comicvine.volumeInformation.description), ) ? ( { detectIssueTypes( comicvine.volumeInformation.description, ).displayName } ) : null}
{/* metadata card */} {!isNil(name) && (
{ellipsize(issue, 15)}
)}
); }, )}
); };