fix: restore complete admin feature dependencies

This commit is contained in:
Simo committed 2026-07-11 21:15:54 +02:00
1 parent 5b4228261a
commit 0cd753c735
115 files changed
+18565 -4930

No files matched your search

+5 -5
View File
@@ -17,13 +17,13 @@ export default async function RoomFurniPage({
const room = await loadRoom(id)
// Load items in this room. items.item_id → items_base.id
const items = await prisma.item.findMany({
const items = await prisma.items.findMany({
where: { roomId: room.id },
orderBy: { id: 'desc' },
})
// Resolve item bases
const baseIds = Array.from(new Set(items.map((i) => i.itemId)))
const baseIds = Array.from(new Set(items.map((i) => i.itemId).filter((id): id is number => id !== null)))
const bases = baseIds.length
? await prisma.itemsBase.findMany({
where: { id: { in: baseIds } },
@@ -43,10 +43,10 @@ export default async function RoomFurniPage({
const userMap = new Map(users.map((u) => [u.id, u.username]))
const rows = items.map((i) => {
const base = baseMap.get(i.itemId)
const base = i.itemId === null ? undefined : baseMap.get(i.itemId)
return {
id: i.id,
baseId: i.itemId,
baseId: i.itemId ?? 0,
name: base?.publicName || base?.itemName || `#${i.itemId}`,
itemName: base?.itemName ?? '',
type: base?.type ?? '?',
@@ -74,7 +74,7 @@ export default async function RoomFurniPage({
room={{
id: room.id,
name: room.name,
ownerUsername: room.owner?.username ?? room.owner_name,
ownerUsername: room.owner?.username ?? room.ownerName,
}}
items={rows}
canEdit={session.user.rank >= 4}
+8 -3
View File
@@ -5,11 +5,16 @@ export async function loadRoom(id: string) {
const roomId = parseInt(id, 10)
if (Number.isNaN(roomId)) notFound()
const room = await prisma.room.findUnique({
const room = await prisma.rooms.findUnique({
where: { id: roomId },
include: { owner: { select: { id: true, username: true, look: true } } },
})
if (!room) notFound()
return room
const owner = room.ownerId > 0
? await prisma.user.findUnique({
where: { id: room.ownerId },
select: { id: true, username: true, look: true },
})
: null
return { ...room, owner }
}
+2 -2
View File
@@ -42,7 +42,7 @@ export default async function RoomEditPage({
</Badge>
</h1>
<p className="text-sm text-muted-foreground">
Owner: {room.owner.username} &middot; {room.users}/{room.usersMax} users
Owner: {room.owner?.username ?? room.ownerName} &middot; {room.users}/{room.usersMax} users
</p>
</div>
</div>
@@ -61,7 +61,7 @@ export default async function RoomEditPage({
state: room.state,
usersMax: room.usersMax,
users: room.users,
ownerName: room.owner.username,
ownerName: room.owner?.username ?? room.ownerName,
}}
/>
</div>
+7 -6
View File
@@ -49,12 +49,13 @@ export default async function RoomShowPage({
<Users className="h-4 w-4 text-muted-foreground" />
<span className="font-medium">{room.users}</span> / {room.usersMax} users
</span>
<Link
href={`/admin/users/show/${room.owner.id}`}
className="text-primary hover:underline"
>
Owner: {room.owner.username}
</Link>
{room.owner ? (
<Link href={`/admin/users/show/${room.owner.id}`} className="text-primary hover:underline">
Owner: {room.owner.username}
</Link>
) : (
<span>Owner: {room.ownerName}</span>
)}
</div>
</div>
<div className="flex gap-2">