diff --git a/src/routes/Addons/Addons.js b/src/routes/Addons/Addons.js
index 91bcbd27f..451101cbe 100644
--- a/src/routes/Addons/Addons.js
+++ b/src/routes/Addons/Addons.js
@@ -6,7 +6,7 @@ const classnames = require('classnames');
const { useTranslation } = require('react-i18next');
const { default: Icon } = require('@stremio/stremio-icons/react');
const { usePlatform, useBinaryState, withCoreSuspender } = require('stremio/common');
-const { AddonDetailsModal, Button, Image, MainNavBars, Multiselect, ModalDialog, SearchBar, SharePrompt, TextInput } = require('stremio/components');
+const { AddonDetailsModal, Button, Image, MainNavBars, ModalDialog, SearchBar, SharePrompt, TextInput, MultiselectMenu } = require('stremio/components');
const { useServices } = require('stremio/services');
const Addon = require('./Addon');
const useInstalledAddons = require('./useInstalledAddons');
@@ -107,7 +107,7 @@ const Addons = ({ urlParams, queryParams }) => {
{selectInputs.map((selectInput, index) => (
- {
filtersModalOpen ?
{selectInputs.map((selectInput, index) => (
- {
+ const selectedCatalog = remoteAddons.selectable.catalogs.concat(installedAddons.selectable.catalogs).find(({ selected }) => selected);
const catalogSelect = {
- title: t.string('SELECT_CATALOG'),
options: remoteAddons.selectable.catalogs
.concat(installedAddons.selectable.catalogs)
.map(({ name, deepLinks }) => ({
@@ -13,24 +13,27 @@ const mapSelectableInputs = (installedAddons, remoteAddons, t) => {
label: t.stringWithPrefix(name, 'ADDON_'),
title: t.stringWithPrefix(name, 'ADDON_'),
})),
- selected: remoteAddons.selectable.catalogs
- .concat(installedAddons.selectable.catalogs)
- .filter(({ selected }) => selected)
- .map(({ deepLinks }) => deepLinks.addons),
- renderLabelText: remoteAddons.selected !== null ?
+ selectedOption: selectedCatalog
+ ? {
+ label: t.stringWithPrefix(selectedCatalog.name, 'ADDON_'),
+ value: selectedCatalog.deepLinks.addons,
+ }
+ : undefined,
+ title: remoteAddons.selected !== null ?
() => {
const selectableCatalog = remoteAddons.selectable.catalogs
.find(({ id }) => id === remoteAddons.selected.request.path.id);
return selectableCatalog ? t.stringWithPrefix(selectableCatalog.name, 'ADDON_') : remoteAddons.selected.request.path.id;
}
- :
- null,
- onSelect: (event) => {
- window.location = event.value;
+ : null,
+ onSelect: (value) => {
+ window.location = value;
}
};
+ const selectedType = installedAddons.selected !== null
+ ? installedAddons.selectable.types.find(({ selected }) => selected)
+ : remoteAddons.selectable.types.find(({ selected }) => selected);
const typeSelect = {
- title: t.string('SELECT_TYPE'),
options: installedAddons.selected !== null ?
installedAddons.selectable.types.map(({ type, deepLinks }) => ({
value: deepLinks.addons,
@@ -41,15 +44,13 @@ const mapSelectableInputs = (installedAddons, remoteAddons, t) => {
value: deepLinks.addons,
label: t.stringWithPrefix(type, 'TYPE_')
})),
- selected: installedAddons.selected !== null ?
- installedAddons.selectable.types
- .filter(({ selected }) => selected)
- .map(({ deepLinks }) => deepLinks.addons)
- :
- remoteAddons.selectable.types
- .filter(({ selected }) => selected)
- .map(({ deepLinks }) => deepLinks.addons),
- renderLabelText: () => {
+ selectedOption: selectedType
+ ? {
+ label: selectedType.type !== null ? t.stringWithPrefix(selectedType.type, 'TYPE_') : t.string('TYPE_ALL'),
+ value: selectedType.deepLinks.addons
+ }
+ : undefined,
+ title: () => {
return installedAddons.selected !== null ?
installedAddons.selected.request.type === null ?
t.string('TYPE_ALL')
@@ -61,8 +62,8 @@ const mapSelectableInputs = (installedAddons, remoteAddons, t) => {
:
typeSelect.title;
},
- onSelect: (event) => {
- window.location = event.value;
+ onSelect: (value) => {
+ window.location = value;
}
};
return [catalogSelect, typeSelect];