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"
/>
);
}