Start adding profile page

This commit is contained in:
2025-05-19 16:57:52 -05:00
parent 40ab2d8450
commit d47ed16700
10 changed files with 666 additions and 680 deletions

View File

@ -27,3 +27,49 @@ export const getProfile = async (): Promise<Result<Profile>> => {
};
}
};
type updateProfileProps = {
full_name?: string;
email?: string;
avatar_url?: string;
};
export const updateProfile = async ({
full_name,
email,
avatar_url,
}: updateProfileProps): Promise<Result<Profile>> => {
try {
if (full_name === undefined && email === undefined && avatar_url === undefined)
throw new Error('No profile data provided');
const userResponse = await getUser();
if (!userResponse.success || userResponse.data === undefined)
throw new Error('User not found');
const supabase = await createServerClient();
const { data, error } = await supabase
.from('profiles')
.update({
...(full_name !== undefined && {full_name}),
...(email !== undefined && {email}),
...(avatar_url !== undefined && {avatar_url}),
})
.eq('id', userResponse.data.id)
.select()
.single();
if (error) throw error;
return {
success: true,
data: data as Profile,
};
} catch (error) {
return {
success: false,
error:
error instanceof Error
? error.message
: 'Unknown error updating profile',
};
}
};