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",