diff --git a/frontend/src/Indexer/Info/IndexerInfoModalContent.tsx b/frontend/src/Indexer/Info/IndexerInfoModalContent.tsx index 28c9a58ee..b54092b4a 100644 --- a/frontend/src/Indexer/Info/IndexerInfoModalContent.tsx +++ b/frontend/src/Indexer/Info/IndexerInfoModalContent.tsx @@ -3,6 +3,7 @@ import React, { useCallback, useState } from 'react'; import { useSelector } from 'react-redux'; import { Tab, TabList, TabPanel, Tabs } from 'react-tabs'; import { createSelector } from 'reselect'; +import Alert from 'Components/Alert'; import DescriptionList from 'Components/DescriptionList/DescriptionList'; import DescriptionListItem from 'Components/DescriptionList/DescriptionListItem'; import DescriptionListItemDescription from 'Components/DescriptionList/DescriptionListItemDescription'; @@ -23,7 +24,7 @@ import TagListConnector from 'Components/TagListConnector'; import { kinds } from 'Helpers/Props'; import DeleteIndexerModal from 'Indexer/Delete/DeleteIndexerModal'; import EditIndexerModalConnector from 'Indexer/Edit/EditIndexerModalConnector'; -import Indexer from 'Indexer/Indexer'; +import Indexer, { IndexerCapabilities } from 'Indexer/Indexer'; import { createIndexerSelectorForHook } from 'Store/Selectors/createIndexerSelector'; import translate from 'Utilities/String/translate'; import IndexerHistory from './History/IndexerHistory'; @@ -63,7 +64,7 @@ function IndexerInfoModalContent(props: IndexerInfoModalContentProps) { fields, tags, protocol, - capabilities, + capabilities = {} as IndexerCapabilities, } = indexer as Indexer; const { onModalClose } = props; @@ -207,7 +208,7 @@ function IndexerInfoModalContent(props: IndexerInfoModalContentProps) { descriptionClassName={styles.description} title={translate('RawSearchSupported')} data={ - capabilities.supportsRawSearch + capabilities?.supportsRawSearch ? translate('Yes') : translate('No') } @@ -216,12 +217,12 @@ function IndexerInfoModalContent(props: IndexerInfoModalContentProps) { descriptionClassName={styles.description} title={translate('SearchTypes')} data={ - capabilities.searchParams.length === 0 ? ( - translate('NotSupported') - ) : ( + capabilities?.searchParams?.length > 0 ? ( + ) : ( + translate('NotSupported') ) } /> @@ -229,60 +230,60 @@ function IndexerInfoModalContent(props: IndexerInfoModalContentProps) { descriptionClassName={styles.description} title={translate('TVSearchTypes')} data={ - capabilities.tvSearchParams.length === 0 - ? translate('NotSupported') - : capabilities.tvSearchParams.map((p) => { + capabilities?.tvSearchParams?.length > 0 + ? capabilities.tvSearchParams.map((p) => { return ( ); }) + : translate('NotSupported') } /> { + capabilities?.movieSearchParams?.length > 0 + ? capabilities.movieSearchParams.map((p) => { return ( ); }) + : translate('NotSupported') } /> { + capabilities?.bookSearchParams?.length > 0 + ? capabilities.bookSearchParams.map((p) => { return ( ); }) + : translate('NotSupported') } /> { + capabilities?.musicSearchParams?.length > 0 + ? capabilities.musicSearchParams.map((p) => { return ( ); }) + : translate('NotSupported') } /> @@ -338,7 +339,11 @@ function IndexerInfoModalContent(props: IndexerInfoModalContentProps) { })} - ) : null} + ) : ( + + {translate('NoIndexerCategories')} + + )} diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index 23367daea..62804cae7 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -2,8 +2,8 @@ "About": "About", "AcceptConfirmationModal": "Accept Confirmation Modal", "Actions": "Actions", - "ActiveIndexers": "Active Indexers", "ActiveApps": "Active Apps", + "ActiveIndexers": "Active Indexers", "Add": "Add", "AddApplication": "Add Application", "AddApplicationImplementation": "Add Application - {implementationName}", @@ -339,8 +339,9 @@ "NoChanges": "No Changes", "NoDownloadClientsFound": "No download clients found", "NoHistoryFound": "No history found", - "NoIndexersFound": "No indexers found", + "NoIndexerCategories": "No categories found for this indexer", "NoIndexerHistory": "No history found for this indexer", + "NoIndexersFound": "No indexers found", "NoLeaveIt": "No, Leave It", "NoLinks": "No Links", "NoLogFiles": "No log files",