Update updateMinecraftName

This commit is contained in:
UltraLionFr
2025-07-29 06:11:21 +02:00
parent afd369ed51
commit b94320aa44
2 changed files with 26 additions and 11 deletions
+22 -9
View File
@@ -74,17 +74,30 @@ export async function updateMinecraftName(form: FormData) {
const mcName = (form.get("mcName") as string).trim(); const mcName = (form.get("mcName") as string).trim();
if (!/^[A-Za-z0-9_]{3,16}$/.test(mcName)) throw new Error("invalid"); if (!/^[A-Za-z0-9_]{3,16}$/.test(mcName)) throw new Error("invalid");
await prisma.user.upsert({ const user = await prisma.user.findUnique({
where: { email: session.user!.email! }, where: { email: session.user!.email! },
update: { mcName },
create: {
email: session.user!.email!,
name: session.user!.name,
image: session.user!.image,
mcName,
},
}); });
if (!user) {
await prisma.user.create({
data: {
email: session.user!.email!,
name: session.user!.name,
image: session.user!.image,
mcName,
},
});
} else {
if (user.mcName) {
throw new Error("Le pseudo Minecraft ne peut pas être modifié après avoir été défini.");
}
await prisma.user.update({
where: { email: session.user!.email! },
data: { mcName },
});
}
revalidatePath("/dashboard"); revalidatePath("/dashboard");
revalidatePath("/"); revalidatePath("/");
} }
+4 -2
View File
@@ -60,13 +60,15 @@ export default async function ProfilPage() {
placeholder="Pseudo MC" placeholder="Pseudo MC"
required required
pattern="[A-Za-z0-9_]{3,16}" pattern="[A-Za-z0-9_]{3,16}"
className="input pl-12" disabled={Boolean(user?.mcName)}
className="input pl-12 disabled:opacity-60"
/> />
</div> </div>
<button <button
type="submit" type="submit"
className="rounded bg-indigo-600 px-4 py-2 text-sm font-medium hover:bg-indigo-700" disabled={Boolean(user?.mcName)}
className="rounded bg-indigo-600 px-4 py-2 text-sm font-medium hover:bg-indigo-700 disabled:opacity-50"
> >
Enregistrer Enregistrer
</button> </button>