diff --git a/package.json b/package.json index e8655f8d4..81c4771b7 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@babel/runtime": "7.26.0", "@sentry/browser": "8.42.0", "@stremio/stremio-colors": "5.2.0", - "@stremio/stremio-core-web": "0.51.1", + "@stremio/stremio-core-web": "https://stremio.github.io/stremio-core/stremio-core-web/feat/stremio-core-web-bridge-panicking/dev/stremio-stremio-core-web-0.51.1.tgz", "@stremio/stremio-icons": "5.8.0", "@stremio/stremio-video": "0.0.64", "a-color-picker": "1.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d2a4883e5..9fc4507b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: 5.2.0 version: 5.2.0 '@stremio/stremio-core-web': - specifier: 0.51.1 - version: 0.51.1 + specifier: https://stremio.github.io/stremio-core/stremio-core-web/feat/stremio-core-web-bridge-panicking/dev/stremio-stremio-core-web-0.51.1.tgz + version: https://stremio.github.io/stremio-core/stremio-core-web/feat/stremio-core-web-bridge-panicking/dev/stremio-stremio-core-web-0.51.1.tgz '@stremio/stremio-icons': specifier: 5.8.0 version: 5.8.0 @@ -1302,8 +1302,9 @@ packages: '@stremio/stremio-colors@5.2.0': resolution: {integrity: sha512-dYlPgu9W/H7c9s1zmW5tiDnRenaUa4Hg1QCyOg1lhOcgSfM/bVTi5nnqX+IfvGTTUNA0zgzh8hI3o3miwnZxTg==} - '@stremio/stremio-core-web@0.51.1': - resolution: {integrity: sha512-BD8i6zkDdMPeCyH50Bb7SB8r4nYx4eJwz4kLEJEl0PFjdr0gOmwHtEIgNa89ShJLNXUjPnpv4sVSNxFRG8fb5Q==} + '@stremio/stremio-core-web@https://stremio.github.io/stremio-core/stremio-core-web/feat/stremio-core-web-bridge-panicking/dev/stremio-stremio-core-web-0.51.1.tgz': + resolution: {tarball: https://stremio.github.io/stremio-core/stremio-core-web/feat/stremio-core-web-bridge-panicking/dev/stremio-stremio-core-web-0.51.1.tgz} + version: 0.51.1 '@stremio/stremio-icons@5.8.0': resolution: {integrity: sha512-IVUvQbIWfA4YEHCTed7v/sdQJCJ+OOCf84LTWpkE2W6GLQ+15WHcMEJrVkE1X3ekYJnGg3GjT0KLO6tKSU0P4w==} @@ -6561,7 +6562,7 @@ snapshots: '@stremio/stremio-colors@5.2.0': {} - '@stremio/stremio-core-web@0.51.1': + '@stremio/stremio-core-web@https://stremio.github.io/stremio-core/stremio-core-web/feat/stremio-core-web-bridge-panicking/dev/stremio-stremio-core-web-0.51.1.tgz': dependencies: '@babel/runtime': 7.24.1 diff --git a/src/routes/Addons/Addons.js b/src/routes/Addons/Addons.js index da9544d51..86a45374c 100644 --- a/src/routes/Addons/Addons.js +++ b/src/routes/Addons/Addons.js @@ -8,6 +8,7 @@ const { default: Icon } = require('@stremio/stremio-icons/react'); const { usePlatform, useBinaryState, withCoreSuspender } = require('stremio/common'); const { AddonDetailsModal, Button, Image, MainNavBars, ModalDialog, SearchBar, SharePrompt, TextInput, MultiselectMenu } = require('stremio/components'); const { useServices } = require('stremio/services'); +const useToast = require('stremio/common/Toast/useToast'); const Addon = require('./Addon'); const useInstalledAddons = require('./useInstalledAddons'); const useRemoteAddons = require('./useRemoteAddons'); @@ -20,6 +21,7 @@ const Addons = ({ urlParams, queryParams }) => { const { t } = useTranslation(); const platform = usePlatform(); const { core } = useServices(); + const toast = useToast(); const installedAddons = useInstalledAddons(urlParams); const remoteAddons = useRemoteAddons(urlParams); const [addonDetailsTransportUrl, setAddonDetailsTransportUrl] = useAddonDetailsTransportUrl(urlParams, queryParams); @@ -29,7 +31,17 @@ const Addons = ({ urlParams, queryParams }) => { const addAddonUrlInputRef = React.useRef(null); const addAddonOnSubmit = React.useCallback(() => { if (addAddonUrlInputRef.current !== null) { - setAddonDetailsTransportUrl(addAddonUrlInputRef.current.value); + try { + let url = new URL(addAddonUrlInputRef.current.value).toString(); + setAddonDetailsTransportUrl(url); + } catch (e) { + toast.show({ + type: 'error', + title: `Failed to parse addon url: ${addAddonUrlInputRef.current.value}`, + timeout: 10000 + }); + console.error('Failed to parse addon url:', e); + } } }, [setAddonDetailsTransportUrl]); const addAddonModalButtons = React.useMemo(() => {