import React, { ReactElement } from "react"; import { detectIssueTypes } from "../../shared/utils/tradepaperback.utils"; import dayjs from "dayjs"; import { isEmpty, isUndefined } from "lodash"; import Card from "../shared/Carda"; import { convert } from "html-to-text"; interface ComicVineDetailsProps { updatedAt?: string; data?: { name?: string; number?: string; resource_type?: string; id?: number; }; } export const ComicVineDetails = (props: ComicVineDetailsProps): ReactElement => { const { data, updatedAt } = props; return (
{/* Title */}
{data.name}
Is a part of{" "} {data.volumeInformation.name}
{/* Comicvine metadata */}
ComicVine Metadata
Last scraped on{" "} {dayjs(updatedAt).format("MMM D YYYY [at] h:mm a")}
ComicVine Issue ID {data.id}
{/* Publisher details */}
Published by{" "} {data.volumeInformation.publisher.name}
Total issues in this volume{" "} {data.volumeInformation.count_of_issues}
{data.issue_number && (
Issue Number {data.issue_number}
)} {!isUndefined( detectIssueTypes(data.volumeInformation.description), ) ? (
Detected Type { detectIssueTypes(data.volumeInformation.description) .displayName }
) : data.resource_type ? (
Type {data.resource_type}
) : null}
{/* Description */}
{!isEmpty(data.description) && convert(data.description, { baseElements: { selectors: ["p"], }, })}
); }; export default ComicVineDetails;