import React, { ReactElement, useEffect, useState } from "react";
import { isEmpty, isNil, isUndefined } from "lodash";
import { useSelector } from "react-redux";
import { ArchiveOperations } from "../ComicDetail/Tabs/ArchiveOperations";
import { ComicInfoXML } from "../ComicDetail/Tabs/ComicInfoXML";
import AcquisitionPanel from "../ComicDetail/AcquisitionPanel";
import DownloadsPanel from "../ComicDetail/DownloadsPanel";
import { VolumeInformation } from "../ComicDetail/Tabs/VolumeInformation";
export const TabControls = (props): ReactElement => {
const comicBookDetailData = useSelector(
(state: RootState) => state.comicInfo.comicBookDetail,
);
const libraryServiceCallInProgress = useSelector(
(state: RootState) => state.fileOps.IMSCallInProgress,
);
const { comicObjectId } = props;
// check for the availability of CV metadata
const isComicBookMetadataAvailable =
comicBookDetailData.sourcedMetadata &&
!isUndefined(comicBookDetailData.sourcedMetadata.comicvine) &&
!isUndefined(
comicBookDetailData.sourcedMetadata.comicvine.volumeInformation,
) &&
!isEmpty(comicBookDetailData.sourcedMetadata);
// check for the availability of rawFileDetails
const areRawFileDetailsAvailable =
!isUndefined(comicBookDetailData.rawFileDetails) &&
!isEmpty(comicBookDetailData.rawFileDetails.cover);
// query for airdc++
const airDCPPQuery = {};
if (isComicBookMetadataAvailable) {
Object.assign(airDCPPQuery, {
issue: {
name: comicBookDetailData.sourcedMetadata.comicvine.volumeInformation
.name,
},
});
} else if (areRawFileDetailsAvailable) {
Object.assign(airDCPPQuery, {
issue: {
name: comicBookDetailData.inferredMetadata.issue.name,
number: comicBookDetailData.inferredMetadata.issue.number,
},
});
}
// Tab content and header details
const tabGroup = [
{
id: 1,
name: "Volume Information",
icon: ,
content: isComicBookMetadataAvailable ? (