diff --git a/src/assets/locales/en.json b/src/assets/locales/en.json index 21462955..2bacaa53 100644 --- a/src/assets/locales/en.json +++ b/src/assets/locales/en.json @@ -773,7 +773,9 @@ "homeButton": "Go home", "discoverButton": "Discover more", "text": "We have searched through our providers and cannot find the media you are looking for! We do not host the media and have no control over what is available. Please click 'Show details' below for more details.", - "title": "We couldn't find that" + "title": "We couldn't find that", + "onboarding": "More sources might be avalible using the extension or febbox token!", + "onboardingButton": "Do setup again" }, "extensionFailure": { "badge": "Extension disabled", diff --git a/src/pages/parts/player/ScrapeErrorPart.tsx b/src/pages/parts/player/ScrapeErrorPart.tsx index cff8cece..715dee8e 100644 --- a/src/pages/parts/player/ScrapeErrorPart.tsx +++ b/src/pages/parts/player/ScrapeErrorPart.tsx @@ -1,8 +1,11 @@ import { useEffect, useMemo, useState } from "react"; import { Trans, useTranslation } from "react-i18next"; -import { useLocation, useNavigate } from "react-router-dom"; +import { useLocation } from "react-router-dom"; -import { sendPage } from "@/backend/extension/messaging"; +import { + isExtensionActiveCached, + sendPage, +} from "@/backend/extension/messaging"; import { Button } from "@/components/buttons/Button"; import { Icons } from "@/components/Icon"; import { IconPill } from "@/components/layout/IconPill"; @@ -11,6 +14,9 @@ import { Paragraph } from "@/components/text/Paragraph"; import { Title } from "@/components/text/Title"; import { ScrapingItems, ScrapingSegment } from "@/hooks/useProviderScrape"; import { ErrorContainer, ErrorLayout } from "@/pages/layouts/ErrorLayout"; +import { conf } from "@/setup/config"; +import { useOnboardingStore } from "@/stores/onboarding"; +import { usePreferencesStore } from "@/stores/preferences"; import { getExtensionState } from "@/utils/extension"; import type { ExtensionStatus } from "@/utils/extension"; import { getProviderApiUrls } from "@/utils/proxyUrls"; @@ -30,7 +36,8 @@ export function ScrapeErrorPart(props: ScrapeErrorPartProps) { const location = useLocation(); const [extensionState, setExtensionState] = useState("unknown"); - const navigate = useNavigate(); + const setOnboardingCompleted = useOnboardingStore((s) => s.setCompleted); + const febboxKey = usePreferencesStore((s) => s.febboxKey); const error = useMemo(() => { const data = props.data; @@ -100,6 +107,11 @@ export function ScrapeErrorPart(props: ScrapeErrorPartProps) { ); } + function handleOnboarding() { + setOnboardingCompleted(false); + window.location.reload(); + } + return ( @@ -118,22 +130,34 @@ export function ScrapeErrorPart(props: ScrapeErrorPartProps) { {t("player.scraping.notFound.homeButton")} - + {t("player.scraping.notFound.discoverButton")} + */} + {(!isExtensionActiveCached() || !febboxKey) && conf().HAS_ONBOARDING ? ( +
+ {t("player.scraping.notFound.onboarding")} + +
+ ) : null}
{error ? (