Reaching a finishing point!

This commit is contained in:
2025-06-04 14:33:39 -05:00
parent bfb6e9e648
commit 04dceb93bd
16 changed files with 462 additions and 240 deletions

View File

@ -4,11 +4,10 @@ import 'server-only';
import { encodedRedirect } from '@/utils/utils';
import { createServerClient } from '@/utils/supabase';
import { headers } from 'next/headers';
import { redirect } from 'next/navigation';
import type { User } from '@/utils/supabase';
import type { Result } from './index';
export const signUp = async (formData: FormData) => {
export const signUp = async (formData: FormData): Promise<Result<string | null>> => {
const name = formData.get('name') as string;
const email = formData.get('email') as string;
const password = formData.get('password') as string;
@ -36,13 +35,12 @@ export const signUp = async (formData: FormData) => {
},
});
if (error) {
return encodedRedirect('error', '/sign-up', error.message);
return { success: false, error: error.message };
} else {
return encodedRedirect(
'success',
'/sign-up',
'Thanks for signing up! Please check your email for a verification link.',
);
return {
success: true,
data: 'Thanks for signing up! Please check your email for a verification link.',
};
}
};
@ -64,14 +62,13 @@ export const signIn = async (
}
};
export const forgotPassword = async (formData: FormData) => {
export const forgotPassword = async (formData: FormData): Promise<Result<string | null>> => {
const email = formData.get('email') as string;
const supabase = await createServerClient();
const origin = (await headers()).get('origin');
const callbackUrl = formData.get('callbackUrl') as string;
if (!email) {
return encodedRedirect('error', '/forgot-password', 'Email is required');
return { success: false, error: 'Email is required' };
}
const { error } = await supabase.auth.resetPasswordForEmail(email, {
@ -79,22 +76,9 @@ export const forgotPassword = async (formData: FormData) => {
});
if (error) {
return encodedRedirect(
'error',
'/forgot-password',
'Could not reset password',
);
return { success: false, error: 'Could not reset password' };
}
if (callbackUrl) {
return redirect(callbackUrl);
}
return encodedRedirect(
'success',
'/forgot-password',
'Check your email for a link to reset your password.',
);
return { success: true, data: 'Check your email for a link to reset your password.' };
};