import { signOut, useSession } from "next-auth/react"; import { useEffect, useState } from "react"; import { toast } from "react-hot-toast"; import { useRouter } from "next/router"; import CenteredForm from "@/layouts/CenteredForm"; import { Plan } from "@/types/global"; import Button from "@/components/ui/Button"; import getServerSideProps from "@/lib/client/getServerSideProps"; import { Trans, useTranslation } from "next-i18next"; import { useUser } from "@/hooks/store/user"; export default function Subscribe() { const { t } = useTranslation(); const [submitLoader, setSubmitLoader] = useState(false); const session = useSession(); const [plan, setPlan] = useState(1); const router = useRouter(); const { data: user = {} } = useUser(); useEffect(() => { if ( session.status === "authenticated" && user.id && (user?.subscription?.active || user.parentSubscription?.active) ) router.push("/dashboard"); }, [session.status, user]); async function submit() { setSubmitLoader(true); const redirectionToast = toast.loading(t("redirecting_to_stripe")); const res = await fetch("/api/v1/payment?plan=" + plan); const data = await res.json(); router.push(data.response); toast.dismiss(redirectionToast); } return (

{t("subscribe_title")}

, ]} />

{t("discount_percent", { percent: 25, })}

${plan === Plan.monthly ? "4" : "3"} /mo

{plan === Plan.monthly ? t("billed_monthly") : t("billed_yearly")}

{t("total")}

{plan === Plan.monthly ? t("total_monthly_desc", { count: Number(process.env.NEXT_PUBLIC_TRIAL_PERIOD_DAYS), monthlyPrice: "4", }) : t("total_annual_desc", { count: Number(process.env.NEXT_PUBLIC_TRIAL_PERIOD_DAYS), annualPrice: "36", })}

{t("plus_tax")}

signOut()} className="w-fit mx-auto cursor-pointer text-neutral font-semibold " > {t("sign_out")}
); } export { getServerSideProps };