summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-02-10 00:25:43 -0800
committerFuwn <[email protected]>2026-02-10 00:25:43 -0800
commit1bf443a5a98d0c21c0bf622114b8f87fdac8a5a7 (patch)
tree7e4f82001192fc10f154f868e4e2f2c2ea9ff3ae /apps
parentdocs: replace boilerplate README with project documentation (diff)
downloadasa.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.ts3
-rw-r--r--apps/web/app/api/export/route.ts2
-rw-r--r--apps/web/app/reader/settings/_components/account-settings.tsx13
-rw-r--r--apps/web/lib/queries/use-user-profile.ts4
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,