From d32fe5123a20cc8fcaec5f1924cc9575fa0de709 Mon Sep 17 00:00:00 2001 From: nklhrstv Date: Mon, 26 Oct 2020 15:36:58 +0200 Subject: [PATCH] AddonDetailsModal adapted to changes in core --- .../AddonDetailsModal/AddonDetailsModal.js | 34 +++++++++---------- .../AddonDetailsModal/useAddonDetails.js | 34 ++++--------------- 2 files changed, 23 insertions(+), 45 deletions(-) diff --git a/src/common/AddonDetailsModal/AddonDetailsModal.js b/src/common/AddonDetailsModal/AddonDetailsModal.js index d30582926..c04bc2d75 100644 --- a/src/common/AddonDetailsModal/AddonDetailsModal.js +++ b/src/common/AddonDetailsModal/AddonDetailsModal.js @@ -12,7 +12,7 @@ const AddonDetailsModal = ({ transportUrl, onCloseRequest }) => { const { core } = useServices(); const addonDetails = useAddonDetails(transportUrl); const modalButtons = React.useMemo(() => { - if (addonDetails.remote_addon === null || addonDetails.remote_addon.content.type !== 'Ready') { + if (addonDetails.remoteAddon === null || addonDetails.remoteAddon.content.type !== 'Ready') { return null; } @@ -30,7 +30,7 @@ const AddonDetailsModal = ({ transportUrl, onCloseRequest }) => { action: 'Ctx', args: { action: 'InstallAddon', - args: addonDetails.remote_addon.content.content + args: addonDetails.remoteAddon.content.content } }); if (typeof onCloseRequest === 'function') { @@ -46,7 +46,7 @@ const AddonDetailsModal = ({ transportUrl, onCloseRequest }) => { action: 'Ctx', args: { action: 'UninstallAddon', - args: addonDetails.remote_addon.content.content.transportUrl + args: addonDetails.remoteAddon.content.content.transportUrl } }); if (typeof onCloseRequest === 'function') { @@ -65,7 +65,7 @@ const AddonDetailsModal = ({ transportUrl, onCloseRequest }) => { onClick: cancelOnClick } }, - addonDetails.remote_addon.content.content.installed ? + addonDetails.localAddon !== null ? { className: styles['uninstall-button'], label: 'Uninstall', @@ -92,27 +92,27 @@ const AddonDetailsModal = ({ transportUrl, onCloseRequest }) => { Loading addon manifest : - addonDetails.remote_addon === null || addonDetails.remote_addon.content.type === 'Loading' ? + addonDetails.remoteAddon === null || addonDetails.remoteAddon.content.type === 'Loading' ?
- Loading addon manifest from {addonDetails.selected.transport_url} + Loading addon manifest from {addonDetails.selected.transportUrl}
: - addonDetails.remote_addon.content.type === 'Err' ? + addonDetails.remoteAddon.content.type === 'Err' ?
- Failed to get addon manifest from {addonDetails.selected.transport_url}. - {addonDetails.remote_addon.content.content} + Failed to get addon manifest from {addonDetails.selected.transportUrl} +
{addonDetails.remoteAddon.content.content.message}
: } diff --git a/src/common/AddonDetailsModal/useAddonDetails.js b/src/common/AddonDetailsModal/useAddonDetails.js index 213a8f97e..6b3ef4eff 100644 --- a/src/common/AddonDetailsModal/useAddonDetails.js +++ b/src/common/AddonDetailsModal/useAddonDetails.js @@ -3,38 +3,21 @@ const React = require('react'); const useModelState = require('stremio/common/useModelState'); -const initAddonDetailsState = () => ({ +const init = () => ({ selected: null, - remote_addon: null + localAddon: null, + remoteAddon: null }); -const mapAddonDetailsStateWithCtx = (addonDetails, ctx) => { - const selected = addonDetails.selected; - const remote_addon = addonDetails.remote_addon !== null && addonDetails.remote_addon.content.type === 'Ready' ? - { - transport_url: addonDetails.remote_addon.transport_url, - content: { - type: addonDetails.remote_addon.content.type, - content: { - ...addonDetails.remote_addon.content.content, - installed: ctx.profile.addons.some(({ transportUrl }) => transportUrl === addonDetails.remote_addon.transport_url), - } - } - } - : - addonDetails.remote_addon; - return { selected, remote_addon }; -}; - const useAddonDetails = (transportUrl) => { - const loadAddonDetailsAction = React.useMemo(() => { + const action = React.useMemo(() => { if (typeof transportUrl === 'string') { return { action: 'Load', args: { model: 'AddonDetails', args: { - transport_url: transportUrl + transportUrl } } }; @@ -44,12 +27,7 @@ const useAddonDetails = (transportUrl) => { }; } }, [transportUrl]); - return useModelState({ - model: 'addon_details', - action: loadAddonDetailsAction, - mapWithCtx: mapAddonDetailsStateWithCtx, - init: initAddonDetailsState, - }); + return useModelState({ model: 'addon_details', action, init }); }; module.exports = useAddonDetails;