From c38240a7f603d15a07973e565747cfb4a7f685ff Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Mon, 11 Aug 2025 11:35:50 -0600 Subject: [PATCH] add onboarding reminder to notfound page TODO find a place for the discover button here --- src/assets/locales/en.json | 4 +- src/pages/parts/player/ScrapeErrorPart.tsx | 46 ++++++++++++++++------ 2 files changed, 38 insertions(+), 12 deletions(-) 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 ? (