Updated site

This commit is contained in:
2025-08-09 19:16:42 +02:00
parent d322283064
commit 7da8a316fd
5 changed files with 39 additions and 18 deletions

View File

@@ -1,7 +0,0 @@
import { getSession } from "@/lib/auth/session"
export default async function PasswordSettings() {
const {} = await getSession()
return null
}

View File

@@ -20,14 +20,14 @@ export default function UserProfile() {
if (isPending) { if (isPending) {
return ( return (
<Card className="max-w-lg"> <Card>
<CardContent className="p-6"> <CardContent className="p-6">
<div className="animate-pulse"> <div className="animate-pulse">
<div className="flex items-center space-x-4"> <div className="flex items-center space-x-4">
<div className="w-16 h-16 bg-gray-200 rounded-full"></div> <div className="w-16 h-16 bg-gray-200 rounded-full"></div>
<div className="space-y-2"> <div className="space-y-2">
<div className="h-4 bg-gray-200 rounded w-32"></div> <div className="w-32 h-4 bg-gray-200 rounded"></div>
<div className="h-3 bg-gray-200 rounded w-24"></div> <div className="w-24 h-3 bg-gray-200 rounded"></div>
</div> </div>
</div> </div>
</div> </div>
@@ -52,7 +52,7 @@ export default function UserProfile() {
: user.email?.[0]?.toUpperCase() || "U" : user.email?.[0]?.toUpperCase() || "U"
return ( return (
<Card className="max-w-lg"> <Card>
<CardHeader className="text-center"> <CardHeader className="text-center">
<div className="flex justify-center mb-4"> <div className="flex justify-center mb-4">
<Avatar className="w-20 h-20"> <Avatar className="w-20 h-20">
@@ -62,13 +62,13 @@ export default function UserProfile() {
</AvatarFallback> </AvatarFallback>
</Avatar> </Avatar>
</div> </div>
<div className="flex items-center justify-between"> <div className="flex justify-between items-center">
<CardTitle className="text-xl">Profile</CardTitle> <CardTitle className="text-xl">Profile</CardTitle>
</div> </div>
</CardHeader> </CardHeader>
<CardContent className="space-y-4"> <CardContent className="space-y-4">
<div className="space-y-2"> <div className="space-y-2">
<Label className="text-sm font-medium flex items-center gap-2"> <Label className="flex gap-2 items-center text-sm font-medium">
<User className="w-4 h-4" /> <User className="w-4 h-4" />
User ID User ID
</Label> </Label>
@@ -80,7 +80,7 @@ export default function UserProfile() {
</div> </div>
<div className="space-y-2"> <div className="space-y-2">
<Label className="text-sm font-medium flex items-center gap-2"> <Label className="flex gap-2 items-center text-sm font-medium">
<Calendar className="w-4 h-4" /> <Calendar className="w-4 h-4" />
Joined Joined
</Label> </Label>
@@ -155,7 +155,7 @@ function UserUpdateForm({ name, image, email }: z.infer<typeof userUpdateSchema>
name="name" name="name"
render={({ field }) => ( render={({ field }) => (
<FormItem> <FormItem>
<FormLabel className="text-sm font-medium flex items-center gap-2"> <FormLabel className="flex gap-2 items-center text-sm font-medium">
<User2 className="w-4 h-4" /> <User2 className="w-4 h-4" />
Name Name
</FormLabel> </FormLabel>
@@ -171,7 +171,7 @@ function UserUpdateForm({ name, image, email }: z.infer<typeof userUpdateSchema>
name="image" name="image"
render={({ field }) => ( render={({ field }) => (
<FormItem> <FormItem>
<FormLabel className="text-sm font-medium flex items-center gap-2"> <FormLabel className="flex gap-2 items-center text-sm font-medium">
{/* eslint-disable-next-line jsx-a11y/alt-text */} {/* eslint-disable-next-line jsx-a11y/alt-text */}
<Image className="w-4 h-4" /> <Image className="w-4 h-4" />
Image Image

View File

@@ -13,7 +13,7 @@ export default async function UserAuthPage() {
return ( return (
<div> <div>
<DashBoardTitle title="User Auth" renderSubtitle subtitle="Manage user settings" /> <DashBoardTitle title="User Auth" renderSubtitle subtitle="Manage user settings" />
<div className="flex flex-col gap-6"> <div className="flex flex-col gap-6 max-w-lg">
<PasskeyAdd /> <PasskeyAdd />
<PasskeysList /> <PasskeysList />
</div> </div>

View File

@@ -10,7 +10,7 @@ export default async function UserPage() {
} }
return ( return (
<div> <div className="max-w-lg">
<DashBoardTitle title="User Profile" renderSubtitle subtitle="Manage Profile" /> <DashBoardTitle title="User Profile" renderSubtitle subtitle="Manage Profile" />
<UserProfile /> <UserProfile />
</div> </div>

View File

@@ -1,3 +1,4 @@
import { relations } from "drizzle-orm"
import { boolean, integer, pgTable, text, timestamp } from "drizzle-orm/pg-core" import { boolean, integer, pgTable, text, timestamp } from "drizzle-orm/pg-core"
export const user = pgTable("user", { export const user = pgTable("user", {
@@ -59,3 +60,30 @@ export const passkey = pgTable("passkey", {
createdAt: timestamp("created_at"), createdAt: timestamp("created_at"),
aaguid: text("aaguid") aaguid: text("aaguid")
}) })
export const userRelations = relations(user, ({ many }) => ({
accounts: many(account),
passkeys: many(passkey),
sessions: many(session)
}))
export const accountRelations = relations(account, ({ one }) => ({
user: one(user, {
fields: [account.userId],
references: [user.id]
})
}))
export const passkeyRelations = relations(passkey, ({ one }) => ({
user: one(user, {
fields: [passkey.userId],
references: [user.id]
})
}))
export const sessionRelations = relations(session, ({ one }) => ({
user: one(user, {
fields: [session.userId],
references: [user.id]
})
}))