import Button from "@/components/ui/Button"; import TextInput from "@/components/TextInput"; import CenteredForm from "@/layouts/CenteredForm"; import Link from "next/link"; import { useRouter } from "next/router"; import { FormEvent, useState } from "react"; import { toast } from "react-hot-toast"; import getServerSideProps from "@/lib/client/getServerSideProps"; import { Trans, useTranslation } from "next-i18next"; import { useUpdateUser, useUser } from "@/hooks/store/user"; interface FormData { password: string; name: string; } export default function MemberOnboarding() { const { t } = useTranslation(); const [submitLoader, setSubmitLoader] = useState(false); const router = useRouter(); const [form, setForm] = useState({ password: "", name: "", }); const { data: user = {} } = useUser(); const updateUser = useUpdateUser(); async function submit(event: FormEvent) { event.preventDefault(); if (form.password !== "" && form.name !== "" && !submitLoader) { setSubmitLoader(true); const load = toast.loading(t("sending_password_recovery_link")); await updateUser.mutateAsync( { ...user, name: form.name, password: form.password, }, { onSuccess: (data) => { router.push("/dashboard"); }, onSettled: (data, error) => { setSubmitLoader(false); toast.dismiss(load); if (error) { toast.error(error.message); } else { toast.success(t("settings_applied")); } }, } ); } else { toast.error(t("please_fill_all_fields")); } } return (

{t("invitation_accepted")}

{t("invitation_desc", { owner: user?.parentSubscription?.user?.email, })}

{t("display_name")}

setForm({ ...form, name: e.target.value })} />

{t("new_password")}

setForm({ ...form, password: e.target.value })} />
{process.env.NEXT_PUBLIC_STRIPE && (

, , ]} />

)}
); } export { getServerSideProps };