import React, { lazy } from "react"; import { isNil, isEmpty } from "lodash"; const VolumeInformation = lazy(() => import("./Tabs/VolumeInformation").then(m => ({ default: m.VolumeInformation }))); const ComicInfoXML = lazy(() => import("./Tabs/ComicInfoXML").then(m => ({ default: m.ComicInfoXML }))); const ArchiveOperations = lazy(() => import("./Tabs/ArchiveOperations").then(m => ({ default: m.ArchiveOperations }))); const AcquisitionPanel = lazy(() => import("./AcquisitionPanel")); const TorrentSearchPanel = lazy(() => import("./TorrentSearchPanel")); const DownloadsPanel = lazy(() => import("./DownloadsPanel")); interface TabConfig { id: number; name: string; icon: React.ReactElement; content: React.ReactElement | null; shouldShow: boolean; } interface TabConfigParams { data: any; comicInfo: any; isComicBookMetadataAvailable: boolean; areRawFileDetailsAvailable: boolean; airDCPPQuery: any; comicObjectId: string; userSettings: any; issueName: string; acquisition?: any; } export const createTabConfig = ({ data, comicInfo, isComicBookMetadataAvailable, areRawFileDetailsAvailable, airDCPPQuery, comicObjectId, userSettings, issueName, acquisition, }: TabConfigParams): TabConfig[] => { return [ { id: 1, name: "Volume Information", icon: ( ), content: isComicBookMetadataAvailable ? ( ) : null, shouldShow: isComicBookMetadataAvailable, }, { id: 2, name: "ComicInfo.xml", icon: ( ), content: (
{!isNil(comicInfo) && }
), shouldShow: !isEmpty(comicInfo), }, { id: 3, icon: ( ), name: "Archive Operations", content: , shouldShow: areRawFileDetailsAvailable, }, { id: 4, icon: ( ), name: "DC++ Search", content: ( ), shouldShow: true, }, { id: 5, icon: ( ), name: "Torrent Search", content: , shouldShow: true, }, { id: 6, name: "Downloads", icon: ( <> {(acquisition?.directconnect?.downloads?.length || 0) + (acquisition?.torrent?.length || 0)} ), content: !isNil(data) && !isEmpty(data) ? ( ) : (
AirDC++ is not configured. Please configure it in{" "} Settings.
), shouldShow: true, }, ]; };