From 4ec1bb92806381f9e17f717430a47600db6ed51d Mon Sep 17 00:00:00 2001 From: Cooper Ransom Date: Wed, 27 Mar 2024 17:44:28 -0400 Subject: [PATCH] Ok now i fixed it all --- src/pages/onboarding/OnboardingExtension.tsx | 4 ++-- src/pages/parts/player/ScrapeErrorPart.tsx | 3 ++- src/utils/extension.ts | 20 ++++++++++++++++ src/utils/onboarding.ts | 24 +------------------- 4 files changed, 25 insertions(+), 26 deletions(-) create mode 100644 src/utils/extension.ts diff --git a/src/pages/onboarding/OnboardingExtension.tsx b/src/pages/onboarding/OnboardingExtension.tsx index ef05cbfc..66e662e2 100644 --- a/src/pages/onboarding/OnboardingExtension.tsx +++ b/src/pages/onboarding/OnboardingExtension.tsx @@ -21,8 +21,8 @@ import { ExtensionDetectionResult, detectExtensionInstall, } from "@/utils/detectFeatures"; -import { getExtensionState } from "@/utils/onboarding"; -import type { ExtensionStatus } from "@/utils/onboarding"; +import { getExtensionState } from "@/utils/extension"; +import type { ExtensionStatus } from "@/utils/extension"; function RefreshBar() { const { t } = useTranslation(); diff --git a/src/pages/parts/player/ScrapeErrorPart.tsx b/src/pages/parts/player/ScrapeErrorPart.tsx index 53e59dea..50b3cccc 100644 --- a/src/pages/parts/player/ScrapeErrorPart.tsx +++ b/src/pages/parts/player/ScrapeErrorPart.tsx @@ -11,7 +11,8 @@ 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 { ExtensionStatus, getExtensionState } from "@/utils/onboarding"; +import { getExtensionState } from "@/utils/extension"; +import type { ExtensionStatus } from "@/utils/extension"; import { getProviderApiUrls } from "@/utils/proxyUrls"; import { ErrorCardInModal } from "../errors/ErrorCard"; diff --git a/src/utils/extension.ts b/src/utils/extension.ts new file mode 100644 index 00000000..8874146b --- /dev/null +++ b/src/utils/extension.ts @@ -0,0 +1,20 @@ +import { isAllowedExtensionVersion } from "@/backend/extension/compatibility"; +import { extensionInfo } from "@/backend/extension/messaging"; + +export type ExtensionStatus = + | "unknown" + | "failed" + | "disallowed" + | "noperms" + | "outdated" + | "success"; + +export async function getExtensionState(): Promise { + const info = await extensionInfo(); + if (!info) return "unknown"; // cant talk to extension + if (!info.success) return "failed"; // extension failed to respond + if (!info.allowed) return "disallowed"; // extension is not enabled on this page + if (!info.hasPermission) return "noperms"; // extension has no perms to do it's tasks + if (!isAllowedExtensionVersion(info.version)) return "outdated"; // extension is too old + return "success"; // no problems +} diff --git a/src/utils/onboarding.ts b/src/utils/onboarding.ts index d4ee10fd..c2678b1c 100644 --- a/src/utils/onboarding.ts +++ b/src/utils/onboarding.ts @@ -1,30 +1,8 @@ -import { isAllowedExtensionVersion } from "@/backend/extension/compatibility"; -import { - extensionInfo, - isExtensionActive, -} from "@/backend/extension/messaging"; +import { isExtensionActive } from "@/backend/extension/messaging"; import { conf } from "@/setup/config"; import { useAuthStore } from "@/stores/auth"; import { useOnboardingStore } from "@/stores/onboarding"; -export type ExtensionStatus = - | "unknown" - | "failed" - | "disallowed" - | "noperms" - | "outdated" - | "success"; - -export async function getExtensionState(): Promise { - const info = await extensionInfo(); - if (!info) return "unknown"; // cant talk to extension - if (!info.success) return "failed"; // extension failed to respond - if (!info.allowed) return "disallowed"; // extension is not enabled on this page - if (!info.hasPermission) return "noperms"; // extension has no perms to do it's tasks - if (!isAllowedExtensionVersion(info.version)) return "outdated"; // extension is too old - return "success"; // no problems -} - export async function needsOnboarding(): Promise { // if onboarding is dislabed, no onboarding needed if (!conf().HAS_ONBOARDING) return false;