diff --git a/apps/remix/app/components/forms/reset-password.tsx b/apps/remix/app/components/forms/reset-password.tsx index a8b3deb2d..7930d4e9f 100644 --- a/apps/remix/app/components/forms/reset-password.tsx +++ b/apps/remix/app/components/forms/reset-password.tsx @@ -3,11 +3,12 @@ import { msg } from '@lingui/core/macro'; import { useLingui } from '@lingui/react'; import { Trans } from '@lingui/react/macro'; import { useForm } from 'react-hook-form'; +import { useNavigate } from 'react-router'; import { match } from 'ts-pattern'; import { z } from 'zod'; +import { authClient } from '@documenso/auth/client'; import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; -import { trpc } from '@documenso/trpc/react'; import { ZPasswordSchema } from '@documenso/trpc/server/auth-router/schema'; import { cn } from '@documenso/ui/lib/utils'; import { Button } from '@documenso/ui/primitives/button'; @@ -55,15 +56,15 @@ export const ResetPasswordForm = ({ className, token }: ResetPasswordFormProps) const isSubmitting = form.formState.isSubmitting; - const { mutateAsync: resetPassword } = trpc.profile.resetPassword.useMutation(); - const onFormSubmit = async ({ password }: Omit) => { try { - await resetPassword({ + await authClient.emailPassword.resetPassword({ password, token, }); + await navigate('/signin'); + form.reset(); toast({ @@ -71,8 +72,6 @@ export const ResetPasswordForm = ({ className, token }: ResetPasswordFormProps) description: _(msg`Your password has been updated successfully.`), duration: 5000, }); - - navigate('/signin'); } catch (err) { const error = AppError.parseError(err); diff --git a/apps/remix/app/components/forms/send-confirmation-email.tsx b/apps/remix/app/components/forms/send-confirmation-email.tsx index a8e043340..337890de4 100644 --- a/apps/remix/app/components/forms/send-confirmation-email.tsx +++ b/apps/remix/app/components/forms/send-confirmation-email.tsx @@ -5,7 +5,7 @@ import { Trans } from '@lingui/react/macro'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; -import { trpc } from '@documenso/trpc/react'; +import { authClient } from '@documenso/auth/client'; import { cn } from '@documenso/ui/lib/utils'; import { Button } from '@documenso/ui/primitives/button'; import { @@ -42,11 +42,9 @@ export const SendConfirmationEmailForm = ({ className }: SendConfirmationEmailFo const isSubmitting = form.formState.isSubmitting; - const { mutateAsync: sendConfirmationEmail } = trpc.profile.sendConfirmationEmail.useMutation(); - const onFormSubmit = async ({ email }: TSendConfirmationEmailFormSchema) => { try { - await sendConfirmationEmail({ email }); + await authClient.emailPassword.resendVerifyEmail({ email }); toast({ title: _(msg`Confirmation email sent`), @@ -59,6 +57,7 @@ export const SendConfirmationEmailForm = ({ className }: SendConfirmationEmailFo form.reset(); } catch (err) { toast({ + variant: 'destructive', title: _(msg`An error occurred while sending your confirmation email`), description: _(msg`Please try again and make sure you enter the correct email address.`), }); diff --git a/apps/remix/app/root.tsx b/apps/remix/app/root.tsx index 2c3c7f223..d3e08e5fb 100644 --- a/apps/remix/app/root.tsx +++ b/apps/remix/app/root.tsx @@ -17,6 +17,7 @@ import { getOptionalLoaderSession } from 'server/utils/get-loader-session'; import { SessionProvider } from '@documenso/lib/client-only/providers/session'; import { APP_I18N_OPTIONS, type SupportedLanguageCodes } from '@documenso/lib/constants/i18n'; +import { createPublicEnv } from '@documenso/lib/utils/env'; import { extractLocaleData } from '@documenso/lib/utils/i18n'; import { TrpcProvider } from '@documenso/trpc/react'; import { Toaster } from '@documenso/ui/primitives/toaster'; @@ -99,9 +100,7 @@ export async function loader({ request }: Route.LoaderArgs) { lang, theme: getTheme(), session, - __ENV__: Object.fromEntries( - Object.entries(process.env).filter(([key]) => key.startsWith('NEXT_')), // Todo: I'm pretty sure this will leak? - ), + publicEnv: createPublicEnv(), }, { headers: { @@ -112,7 +111,7 @@ export async function loader({ request }: Route.LoaderArgs) { } export function Layout({ children }: { children: React.ReactNode }) { - const { __ENV__, theme, lang } = useLoaderData() || {}; + const { publicEnv, theme, lang } = useLoaderData() || {}; // const [theme] = useTheme(); @@ -145,7 +144,7 @@ export function Layout({ children }: { children: React.ReactNode }) {