diff --git a/src/routes/Addons/Addons.js b/src/routes/Addons/Addons.js
index 07064ae48..340219b95 100644
--- a/src/routes/Addons/Addons.js
+++ b/src/routes/Addons/Addons.js
@@ -3,7 +3,7 @@ const PropTypes = require('prop-types');
const classnames = require('classnames');
const { useRouteFocused } = require('stremio-router');
const Icon = require('stremio-icons/dom');
-const { AddonDetailsModal, Button, Multiselect, NavBar, TextInput, SharePrompt, ModalDialog, useBinaryState } = require('stremio/common');
+const { AddonDetailsModal, Button, Image, Multiselect, NavBar, TextInput, SharePrompt, ModalDialog, useBinaryState } = require('stremio/common');
const Addon = require('./Addon');
const useAddons = require('./useAddons');
const useSelectableInputs = require('./useSelectableInputs');
@@ -65,12 +65,17 @@ const Addons = ({ urlParams, queryParams }) => {
const searchInputOnChange = React.useCallback((event) => {
setSearch(event.currentTarget.value);
}, []);
- const [sharedTransportUrl, setSharedTransportUrl] = React.useState(null);
- const clearSharedTransportUrl = React.useCallback(() => {
- setSharedTransportUrl(null);
+ const [sharedAddon, setSharedAddon] = React.useState(null);
+ const renderLogoFallback = React.useMemo(() => () => {
+ return (
+
+ );
+ }, []);
+ const clearSharedAddon = React.useCallback(() => {
+ setSharedAddon(null);
}, []);
const onAddonShare = React.useCallback((event) => {
- setSharedTransportUrl(event.dataset.transportUrl);
+ setSharedAddon(event.dataset);
}, []);
const onAddonToggle = React.useCallback((event) => {
navigate({ detailsTransportUrl: event.dataset.transportUrl });
@@ -81,7 +86,7 @@ const Addons = ({ urlParams, queryParams }) => {
React.useLayoutEffect(() => {
closeAddAddonModal();
setSearch('');
- clearSharedTransportUrl();
+ clearSharedAddon();
}, [urlParams, queryParams]);
return (
@@ -167,7 +172,7 @@ const Addons = ({ urlParams, queryParams }) => {
installed={addon.installed}
onToggle={onAddonToggle}
onShare={onAddonShare}
- dataset={{ transportUrl: addon.transportUrl }}
+ dataset={{ id: addon.manifest.id, name: addon.manifest.name, version: addon.manifest.version, logo: addon.manifest.logo, transportUrl: addon.transportUrl }}
/>
))
}
@@ -181,11 +186,12 @@ const Addons = ({ urlParams, queryParams }) => {
title={'Add addon'}
buttons={addAddonModalButtons}
onCloseRequest={closeAddAddonModal}>
+
You can add an addon via an external link, which will appear under Installed addons.
@@ -193,14 +199,31 @@ const Addons = ({ urlParams, queryParams }) => {
null
}
{
- typeof sharedTransportUrl === 'string' ?
+ sharedAddon !== null && typeof sharedAddon.transportUrl === 'string' ?
+ title={'Share Addon'}
+ onCloseRequest={clearSharedAddon}>
+
+
+
+ {typeof sharedAddon.name === 'string' && sharedAddon.name.length > 0 ? sharedAddon.name : sharedAddon.id}
+ {
+ typeof sharedAddon.version === 'string' && sharedAddon.version.length > 0 ?
+ v. {sharedAddon.version}
+ :
+ null
+ }
+
+
: