36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { getServerSession } from '../../../api/auth/[...nextauth]/auth';
|
|
import { PrismaClient } from '@repo/db';
|
|
import { ProfileForm, SocialForm } from './_components/forms';
|
|
import { GearIcon } from '@radix-ui/react-icons';
|
|
|
|
export default async () => {
|
|
const prisma = new PrismaClient();
|
|
const session = await getServerSession();
|
|
if (!session) return null;
|
|
const user = await prisma.user.findFirst({
|
|
where: {
|
|
id: session.user.id,
|
|
},
|
|
include: {
|
|
discordAccounts: true,
|
|
},
|
|
});
|
|
if (!user) return null;
|
|
const discordAccount = user?.discordAccounts[0];
|
|
return (
|
|
<div className="grid grid-cols-6 gap-4">
|
|
<div className="col-span-full">
|
|
<p className="text-2xl font-semibold text-left flex items-center gap-2">
|
|
<GearIcon className="w-5 h-5" /> Einstellungen
|
|
</p>
|
|
</div>
|
|
<div className="card bg-base-200 shadow-xl mb-4 col-span-6 xl:col-span-3">
|
|
<ProfileForm user={user} />
|
|
</div>
|
|
<div className="card bg-base-200 shadow-xl mb-4 col-span-6 xl:col-span-3">
|
|
<SocialForm discordAccount={discordAccount} user={user} />
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|