shared library hinzugefügt

This commit is contained in:
PxlLoewe
2025-06-26 20:40:23 -07:00
parent a93e95eb95
commit 122cdda486
59 changed files with 163 additions and 246 deletions

View File

@@ -1,30 +0,0 @@
import { BADGES } from "@repo/db";
import P1 from "./p-1.png";
import P2 from "./p-2.png";
import P3 from "./p-3.png";
import D1 from "./d-1.png";
import D2 from "./d-2.png";
import D3 from "./d-3.png";
import DAY1 from "./day-1-member.png";
import { cn } from "../../../helper/cn";
const BadgeImage = {
[BADGES.P1]: P1,
[BADGES.P2]: P2,
[BADGES.P3]: P3,
[BADGES.D1]: D1,
[BADGES.D2]: D2,
[BADGES.D3]: D3,
[BADGES.DAY1]: DAY1,
[BADGES.V1Veteran]: DAY1,
};
export const Badge = ({ name, className }: { name: BADGES; className?: string }) => {
const image = BadgeImage[name];
return (
<span className={cn("flex h-fit p-1", className)}>
<img src={image.src} alt={name} width={100} />
</span>
);
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -0,0 +1,83 @@
import { getPublicUser, prisma } from "@repo/db";
import { TriangleAlert } from "lucide-react";
import { PenaltyCountdown } from "../(app)/_components/PenaltyCountdown";
import { getServerSession } from "api/auth/[...nextauth]/auth";
export const Penalty = async () => {
const session = await getServerSession();
const openTimeban = await prisma.penalty.findMany({
where: {
userId: session?.user.id,
until: {
gte: new Date(),
},
suspended: false,
type: { in: ["TIME_BAN"] },
},
include: {
CreatedUser: true,
},
});
const openBans = await prisma.penalty.findMany({
where: {
userId: session?.user.id,
suspended: false,
type: { in: ["BAN"] },
},
include: {
CreatedUser: true,
},
});
return (
<div className="card bg-error shadow-xl mb-4 col-span-6 xl:col-span-3">
{openTimeban[0] && openTimeban[0].type === "TIME_BAN" && (
<div className="card-body text-base-300">
<h2 className="card-title text-3xl">
<TriangleAlert />
Aktive Strafe - <PenaltyCountdown until={openTimeban[0].until ?? new Date()} />{" "}
verbleibend
</h2>
<p className="text-left font-bold">
Du hast eine aktive Strafe und kannst dich deshalb nicht mit dem Netzwerk verbinden.
</p>
<p className="text-left">
<span className="font-bold">Grund:</span> {openTimeban[0].reason}
</p>
{openTimeban[0].CreatedUser && (
<p className="text-left">
<span className="font-bold">Admin:</span>{" "}
{getPublicUser(openTimeban[0].CreatedUser).fullName}
</p>
)}
</div>
)}
{session?.user.isBanned && (
<div className="card-body text-base-300">
<h2 className="card-title text-3xl">
<TriangleAlert />
Du wurdest permanent von VirtualAirRescue ausgeschlossen.
</h2>
<p className="text-left font-bold">
Dein Fehlverhalten war so schwerwiegend, dass du dauerhaft von VirtualAirRescue
ausgeschlossen wurdest. Du kannst dich nicht mehr mit dem Netzwerk verbinden.
</p>
{openBans[0] && (
<>
<p className="text-left font-bold">
Grund: {openBans[0].reason || "Keine Begründung gefunden"}
</p>
{openBans[0].CreatedUser && (
<p className="text-left">
<span className="font-bold">Admin:</span>{" "}
{getPublicUser(openBans[0].CreatedUser).fullName}
</p>
)}
</>
)}
</div>
)}
</div>
);
};