diff options
| author | Fuwn <[email protected]> | 2026-02-10 00:25:43 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-02-10 00:25:43 -0800 |
| commit | 1bf443a5a98d0c21c0bf622114b8f87fdac8a5a7 (patch) | |
| tree | 7e4f82001192fc10f154f868e4e2f2c2ea9ff3ae /apps | |
| parent | docs: replace boilerplate README with project documentation (diff) | |
| download | asa.news-1bf443a5a98d0c21c0bf622114b8f87fdac8a5a7.tar.xz asa.news-1bf443a5a98d0c21c0bf622114b8f87fdac8a5a7.zip | |
refactor: use Supabase Auth display name instead of custom column
Migrate existing display names from user_profiles to auth.users
user_metadata. Drop display_name column from user_profiles. Frontend
now reads from auth user metadata and updates via auth.updateUser().
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/web/app/api/account/data/route.ts | 3 | ||||
| -rw-r--r-- | apps/web/app/api/export/route.ts | 2 | ||||
| -rw-r--r-- | apps/web/app/reader/settings/_components/account-settings.tsx | 13 | ||||
| -rw-r--r-- | apps/web/lib/queries/use-user-profile.ts | 4 |
4 files changed, 8 insertions, 14 deletions
diff --git a/apps/web/app/api/account/data/route.ts b/apps/web/app/api/account/data/route.ts index 20a7b8c..e2566ba 100644 --- a/apps/web/app/api/account/data/route.ts +++ b/apps/web/app/api/account/data/route.ts @@ -30,7 +30,7 @@ export async function GET() { ] = await Promise.all([ supabaseClient .from("user_profiles") - .select("id, display_name, tier, created_at") + .select("id, tier, created_at") .eq("id", user.id) .single(), supabaseClient @@ -76,6 +76,7 @@ export async function GET() { exportedAt: new Date().toISOString(), account: { emailAddress: user.email, + displayName: user.user_metadata?.display_name ?? null, ...profileResult.data, }, subscriptions: subscriptionsResult.data ?? [], diff --git a/apps/web/app/api/export/route.ts b/apps/web/app/api/export/route.ts index dff7582..65a4327 100644 --- a/apps/web/app/api/export/route.ts +++ b/apps/web/app/api/export/route.ts @@ -19,7 +19,7 @@ export async function GET() { const { data: profile } = await supabaseClient .from("user_profiles") - .select("tier, display_name") + .select("tier") .eq("id", user.id) .single() diff --git a/apps/web/app/reader/settings/_components/account-settings.tsx b/apps/web/app/reader/settings/_components/account-settings.tsx index 9679e3b..298d80d 100644 --- a/apps/web/app/reader/settings/_components/account-settings.tsx +++ b/apps/web/app/reader/settings/_components/account-settings.tsx @@ -39,16 +39,9 @@ export function AccountSettings() { const updateDisplayName = useMutation({ mutationFn: async (displayName: string | null) => { - const { - data: { user }, - } = await supabaseClient.auth.getUser() - - if (!user) throw new Error("not authenticated") - - const { error } = await supabaseClient - .from("user_profiles") - .update({ display_name: displayName }) - .eq("id", user.id) + const { error } = await supabaseClient.auth.updateUser({ + data: { display_name: displayName }, + }) if (error) throw error }, diff --git a/apps/web/lib/queries/use-user-profile.ts b/apps/web/lib/queries/use-user-profile.ts index 49c1c4e..854d4a8 100644 --- a/apps/web/lib/queries/use-user-profile.ts +++ b/apps/web/lib/queries/use-user-profile.ts @@ -20,7 +20,7 @@ export function useUserProfile() { const { data, error } = await supabaseClient .from("user_profiles") .select( - "id, display_name, tier, feed_count, folder_count, muted_keyword_count, custom_feed_count, stripe_subscription_status, stripe_current_period_end" + "id, tier, feed_count, folder_count, muted_keyword_count, custom_feed_count, stripe_subscription_status, stripe_current_period_end" ) .eq("id", user.id) .single() @@ -30,7 +30,7 @@ export function useUserProfile() { const profile: UserProfile = { identifier: data.id, email: user.email ?? null, - displayName: data.display_name, + displayName: (user.user_metadata?.display_name as string) ?? null, tier: data.tier, feedCount: data.feed_count, folderCount: data.folder_count, |