diff --git a/src/components/Library/ScanSetCover.tsx b/src/components/Library/ScanSetCover.tsx index 468ada1..50540e2 100644 --- a/src/components/Library/ScanSetCover.tsx +++ b/src/components/Library/ScanSetCover.tsx @@ -1,5 +1,8 @@ +import Chip from "components/Chip"; import Img, { getAssetURL, ImageQuality } from "components/Img"; import LanguageSwitcher from "components/LanguageSwitcher"; +import RecorderChip from "components/RecorderChip"; +import ToolTip from "components/ToolTip"; import { useAppLayout } from "contexts/AppLayoutContext"; import { GetLibraryItemScansQuery, @@ -7,7 +10,7 @@ import { } from "graphql/generated"; import { useRouter } from "next/router"; import { AppStaticProps } from "queries/getAppStaticProps"; -import { getPreferredLanguage } from "queries/helpers"; +import { getPreferredLanguage, getStatusDescription } from "queries/helpers"; import { Dispatch, SetStateAction, useEffect, useMemo, useState } from "react"; interface Props { @@ -69,13 +72,13 @@ export default function ScanSetCover(props: Props): JSX.Element { const coverImages: UploadImageFragment[] = []; if (selectedScan?.obi_belt?.full?.data?.attributes) - coverImages.push(selectedScan.obi_belt?.full?.data?.attributes); + coverImages.push(selectedScan.obi_belt?.full?.data?.attributes); if (selectedScan?.obi_belt?.inside_full?.data?.attributes) - coverImages.push(selectedScan.obi_belt?.inside_full?.data?.attributes); + coverImages.push(selectedScan.obi_belt?.inside_full?.data?.attributes); if (selectedScan?.dust_jacket?.full?.data?.attributes) - coverImages.push(selectedScan.dust_jacket?.full?.data?.attributes); + coverImages.push(selectedScan.dust_jacket?.full?.data?.attributes); if (selectedScan?.dust_jacket?.inside_full?.data?.attributes) - coverImages.push(selectedScan.dust_jacket?.inside_full?.data?.attributes); + coverImages.push(selectedScan.dust_jacket?.inside_full?.data?.attributes); if (selectedScan?.cover?.full?.data?.attributes) coverImages.push(selectedScan.cover?.full?.data?.attributes); if (selectedScan?.cover?.inside_full?.data?.attributes) @@ -87,7 +90,16 @@ export default function ScanSetCover(props: Props): JSX.Element { {selectedScan && (
-

{"Cover"}

+

+ {"Cover"} +

+ + + {selectedScan.language?.data?.attributes?.code === + selectedScan.source_language?.data?.attributes?.code + ? "Scan" + : "Scanlation"} +
@@ -97,6 +109,74 @@ export default function ScanSetCover(props: Props): JSX.Element { localesIndex={selectedScanIndex} setLocalesIndex={setSelectedScanIndex} /> + +
+

{langui.status}:

+ + {selectedScan.status} + +
+ + {selectedScan.scanners && selectedScan.scanners.data.length > 0 && ( +
+

{"Scanners"}:

+
+ {selectedScan.scanners.data.map((scanner) => ( + <> + {scanner.attributes && ( + + )} + + ))} +
+
+ )} + + {selectedScan.cleaners && selectedScan.cleaners.data.length > 0 && ( +
+

{"Cleaners"}:

+
+ {selectedScan.cleaners.data.map((cleaner) => ( + <> + {cleaner.attributes && ( + + )} + + ))} +
+
+ )} + + {selectedScan.typesetters && + selectedScan.typesetters.data.length > 0 && ( +
+

{"Typesetters"}:

+
+ {selectedScan.typesetters.data.map((typesetter) => ( + <> + {typesetter.attributes && ( + + )} + + ))} +
+
+ )}
diff --git a/src/graphql/operations/getLibraryItemScans.graphql b/src/graphql/operations/getLibraryItemScans.graphql index 4a4b0fa..d2aaa8d 100644 --- a/src/graphql/operations/getLibraryItemScans.graphql +++ b/src/graphql/operations/getLibraryItemScans.graphql @@ -7,6 +7,45 @@ query getLibraryItemScans($slug: String, $language_code: String) { title subtitle images { + status + language { + data { + attributes { + code + } + } + } + source_language { + data { + attributes { + code + } + } + } + scanners { + data { + id + attributes { + ...recorderChip + } + } + } + cleaners { + data { + id + attributes { + ...recorderChip + } + } + } + typesetters { + data { + id + attributes { + ...recorderChip + } + } + } cover { full { data { @@ -55,13 +94,6 @@ query getLibraryItemScans($slug: String, $language_code: String) { } } } - language { - data { - attributes { - code - } - } - } } thumbnail { data { diff --git a/src/pages/library/[slug]/index.tsx b/src/pages/library/[slug]/index.tsx index 88958a6..f4b6c13 100644 --- a/src/pages/library/[slug]/index.tsx +++ b/src/pages/library/[slug]/index.tsx @@ -68,6 +68,16 @@ export default function LibrarySlug(props: Props): JSX.Element { const [lightboxImages, setLightboxImages] = useState([""]); const [lightboxIndex, setLightboxIndex] = useState(0); + let displayOpenScans = false; + if (item?.contents?.data) + for (const content of item.contents.data) { + if ( + content.attributes?.scan_set && + content.attributes.scan_set.length > 0 + ) + displayOpenScans = true; + } + const subPanel = ( - {item?.urls && item?.urls?.length ? ( + {item?.urls && item.urls.length ? (

Available at

- {item?.urls?.map((url) => ( + {item.urls.map((url) => ( <> {url?.url && ( + )}
{item.contents.data.map((content) => (