Add avatar dropdown thing

This commit is contained in:
2025-05-15 14:14:56 -05:00
parent 2054bc86ee
commit 5dcf2ed423
11 changed files with 1004 additions and 63 deletions

View File

@ -3,15 +3,17 @@
import 'server-only';
import { encodedRedirect } from '@/utils/utils';
import { createServerClient } from '@/utils/supabase';
import type { User } from '@supabase/supabase-js'
import { headers } from 'next/headers';
import { redirect } from 'next/navigation';
import type { Result } from './index';
export const signUp = async (formData: FormData) => {
const name = formData.get('name') as string;
const email = formData.get('email') as string;
const password = formData.get('password') as string;
const supabase = await createServerClient();
const origin = (await headers()).get('origin');
//const origin = (await headers()).get('origin');
if (!email || !password) {
return encodedRedirect(
@ -30,7 +32,6 @@ export const signUp = async (formData: FormData) => {
});
if (error) {
console.error(error.code + ': ' + error.message);
return redirect('/protected');
//return encodedRedirect('error', '/sign-up',
//'Thanks for signing up! Please check your email for a verification link.');
@ -68,7 +69,6 @@ export const signIn = async (formData: FormData) => {
if (error) {
return encodedRedirect('error', '/sign-in', error.message);
}
return redirect('/protected');
};
@ -87,7 +87,6 @@ export const forgotPassword = async (formData: FormData) => {
});
if (error) {
console.error(error.message);
return encodedRedirect(
'error',
'/forgot-password',
@ -148,13 +147,13 @@ export const signOut = async () => {
return redirect('/sign-in');
};
export const getUser = async () => {
export const getUser = async (): Promise<Result<User>> => {
try {
const supabase = await createServerClient();
const { data, error } = await supabase.auth.getUser();
if (error) throw error;
return data.user;
return {success: true, data: data.user};
} catch (error) {
console.error('Could not get user!', error);
return {success: false, error: 'Could not get user!'};
}
};

View File

@ -8,17 +8,16 @@ import type { Result } from './index';
export const getProfile = async (): Promise<Result<Profile>> => {
try {
const user = await getUser();
if (!user) throw new Error('User not found');
if (!user.success || user.data === undefined) throw new Error('User not found');
const supabase = await createServerClient();
const { data, error } = await supabase
.from('profiles')
.select('*')
.eq('id', user.id)
.eq('id', user.data.id)
.single();
if (error) throw error;
return { success: true, data: data as Profile };
} catch (error) {
console.error('Could not get profile!', error);
return {
success: false,
error:

View File

@ -50,10 +50,8 @@ export async function getSignedUrl({
urlObj.searchParams.append('download', '');
return { success: true, data: urlObj.toString() };
}
return { success: true, data: data.signedUrl };
} catch (error) {
console.error('Could not get signed URL for asset!', error);
return {
success: false,
error:
@ -87,7 +85,6 @@ export async function getPublicUrl({
return { success: true, data: data.publicUrl };
} catch (error) {
console.error('Could not get public URL for asset!', error);
return {
success: false,
error:
@ -115,7 +112,6 @@ export async function uploadFile({
return { success: true, data: data.path };
} catch (error) {
console.error('Could not upload file!', error);
return {
success: false,
error:
@ -140,7 +136,6 @@ export async function deleteFile({
return { success: true, data: null };
} catch (error) {
console.error('Could not delete file!', error);
return {
success: false,
error:
@ -174,7 +169,6 @@ export async function listFiles({
return { success: true, data };
} catch (error) {
console.error('Could not list files!', error);
return {
success: false,
error: