import { Trans, useTranslation } from "react-i18next"; import { isExtensionActiveCached } from "@/backend/extension/messaging"; import { Button } from "@/components/buttons/Button"; import { Icon, Icons } from "@/components/Icon"; import { Stepper } from "@/components/layout/Stepper"; import { BiggerCenterContainer } from "@/components/layout/ThinContainer"; import { VerticalLine } from "@/components/layout/VerticalLine"; import { FancyModal, Modal, ModalCard, useModal, } from "@/components/overlays/Modal"; import { Divider } from "@/components/utils/Divider"; import { Ol } from "@/components/utils/Ol"; import { Heading1, Heading2, Heading3, Paragraph, } from "@/components/utils/Text"; import { MinimalPageLayout } from "@/pages/layouts/MinimalPageLayout"; import { useNavigateOnboarding, useRedirectBack, } from "@/pages/onboarding/onboardingHooks"; import { Card, CardContent, Link, MiniCardContent, } from "@/pages/onboarding/utils"; import { PageTitle } from "@/pages/parts/util/PageTitle"; import { conf } from "@/setup/config"; import { usePreferencesStore } from "@/stores/preferences"; import { getProxyUrls } from "@/utils/proxyUrls"; import { DebridEdit, FebboxSetup } from "../parts/settings/ConnectionsPart"; function Item(props: { title: string; children: React.ReactNode }) { return ( <>

{props.title}

{props.children}
); } export function OnboardingPage() { const navigate = useNavigateOnboarding(); const skipModal = useModal("skip"); const infoModal = useModal("info"); const { completeAndRedirect } = useRedirectBack(); const { t } = useTranslation(); const noProxies = getProxyUrls().length === 0; const isFebboxSetup = usePreferencesStore((s) => s.febboxKey) !== ""; return ( {t("onboarding.defaultConfirm.title")} {t("onboarding.defaultConfirm.description")} {t("onboarding.defaultConfirm.tip")}
    {t( "onboarding.start.moreInfo.explainer.extensionDescription", )} , {t("onboarding.start.moreInfo.explainer.proxyDescription")} , {t("onboarding.start.moreInfo.explainer.defaultDescription")} , ].filter(Boolean)} /> {conf().ALLOW_FEBBOX_KEY && (
    {t( "onboarding.start.moreInfo.explainer.fedapi.fedapiDescription", )}
    )}
{t("onboarding.start.title")} {t("onboarding.start.explainer")}
infoModal.show()} >
{/* Desktop Cards */}
window.open( "https://github.com/p-stream/p-stream-desktop/releases", "_blank", ) } className="w-1/3" > {t("onboarding.start.options.desktopapp.action")}
{t("onboarding.start.options.or")}
navigate("/onboarding/extension")} className="w-1/3" > {t("onboarding.start.options.extension.action")} {noProxies ? null : ( <>
{t("onboarding.start.options.or")}
completeAndRedirect() : skipModal.show } className="w-1/3" > )}
{/* Mobile Cards */}
{/* window.open( "https://github.com/p-stream/p-stream-desktop/releases", "_blank", ) } className="w-full" > */} navigate("/onboarding/extension")} className="md:w-1/3 md:h-full" > {noProxies ? null : ( completeAndRedirect() : skipModal.show } className="md:w-1/3" > )}
{(conf().ALLOW_FEBBOX_KEY || conf().ALLOW_DEBRID_KEY) === true && ( {t("onboarding.start.options.addons.title")} )}
s.febboxKey)} setFebboxKey={usePreferencesStore((s) => s.setFebboxKey)} mode="onboarding" />
s.debridToken)} setdebridToken={usePreferencesStore((s) => s.setdebridToken)} debridService={usePreferencesStore((s) => s.debridService)} setdebridService={usePreferencesStore((s) => s.setdebridService)} mode="onboarding" />
); }