fix: ensure the user data is setup correct on the main page
This commit is contained in:
		
							parent
							
								
									f8ac6fb251
								
							
						
					
					
						commit
						9962a415be
					
				@ -1,7 +1,10 @@
 | 
				
			|||||||
"use client";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import { Section } from "@/components/Section";
 | 
					import { Section } from "@/components/Section";
 | 
				
			||||||
 | 
					import { db } from "@/db/db";
 | 
				
			||||||
 | 
					import { usersTable } from "@/db/schema";
 | 
				
			||||||
 | 
					import { setInitialUserData } from "@/lib/setInitialUserData";
 | 
				
			||||||
import { cn } from "@/lib/utils";
 | 
					import { cn } from "@/lib/utils";
 | 
				
			||||||
 | 
					import { auth } from "@clerk/nextjs/server";
 | 
				
			||||||
 | 
					import { eq } from "drizzle-orm";
 | 
				
			||||||
import meta from "next-gen/config";
 | 
					import meta from "next-gen/config";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function isDevelopment() {
 | 
					function isDevelopment() {
 | 
				
			||||||
@ -38,7 +41,21 @@ function FeatureCard(props: {
 | 
				
			|||||||
  );
 | 
					  );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default function Main() {
 | 
					export default async function Main() {
 | 
				
			||||||
 | 
					  const { userId } = await auth();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (!userId) {
 | 
				
			||||||
 | 
					    return <div>No auth</div>;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const user = await db.query.usersTable.findFirst({
 | 
				
			||||||
 | 
					    where: eq(usersTable.id, userId),
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (!user) {
 | 
				
			||||||
 | 
					    await setInitialUserData(userId);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return (
 | 
					  return (
 | 
				
			||||||
    <div className="flex flex-col w-full">
 | 
					    <div className="flex flex-col w-full">
 | 
				
			||||||
      <div className="flex flex-col items-center gap-10">
 | 
					      <div className="flex flex-col items-center gap-10">
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,8 @@ export async function setInitialUserData(userId: string) {
 | 
				
			|||||||
  const user = await clerkClient.users.getUser(userId);
 | 
					  const user = await clerkClient.users.getUser(userId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // incase we dont have username such as google login, fallback to first name + last name
 | 
					  // incase we dont have username such as google login, fallback to first name + last name
 | 
				
			||||||
  const usernameFallback = user.username ?? (user.firstName ?? "") + (user.lastName ?? "");
 | 
					  const usernameFallback =
 | 
				
			||||||
 | 
					    user.username ?? (user.firstName ?? "") + (user.lastName ?? "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // For the display name, if it for some reason is empty, fallback to username
 | 
					  // For the display name, if it for some reason is empty, fallback to username
 | 
				
			||||||
  let nameFallback = (user.firstName ?? "") + (user.lastName ?? "");
 | 
					  let nameFallback = (user.firstName ?? "") + (user.lastName ?? "");
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user