refactor: remove explicit any across admin forms and catalog actions
Local Build and Deploy / deploy (push) Canceled after 40s

- Type resolveAsChild generically over Base UI render-prop type
- Type catalog/rooms/catalog-items Prisma updates with Prisma.*UpdateInput
- Type EventForm/PollForm with explicit form-value interfaces
- Type EventPrizesManager/PollQuestionsManager with validator input types
- All typecheck, lint, and 312 tests pass
This commit is contained in:
openhands committed 2026-07-18 20:31:18 +02:00
1 parent 907a4399d0
commit 3eaffe658d
8 files changed
+61 -23

No files matched your search

+9 -2
View File
@@ -1,6 +1,7 @@
"use server";
import { revalidatePath } from "next/cache";
import type { Prisma } from "@/generated/prisma/client";
import { requirePermission } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma";
@@ -55,7 +56,10 @@ export async function updateBcPage({
if (Object.keys(data).length === 0) {
return { ok: false as const, error: "No valid fields to update" };
}
await prisma.catalogPagesBc.update({ where: { id }, data: data as any });
await prisma.catalogPagesBc.update({
where: { id },
data: data as Prisma.CatalogPagesBcUpdateInput,
});
await rcon.updateCatalog();
await logStaffActivity({
staffId: staff.id,
@@ -98,7 +102,10 @@ export async function updateBcItem({
if (Object.keys(safe).length === 0) {
return { ok: false as const, error: "No valid fields to update" };
}
await prisma.catalogItemsBc.update({ where: { id }, data: safe as any });
await prisma.catalogItemsBc.update({
where: { id },
data: safe as Prisma.CatalogItemsBcUpdateInput,
});
await rcon.updateCatalog();
await logStaffActivity({
staffId: staff.id,
+2 -2
View File
@@ -301,7 +301,7 @@ export async function updateCatalogItem({
if (Object.keys(safeCatalog).length > 0) {
await prisma.catalogItems.update({
where: { id },
data: safeCatalog as any,
data: safeCatalog as Prisma.CatalogItemsUpdateInput,
});
}
if (baseItem) {
@@ -309,7 +309,7 @@ export async function updateCatalogItem({
if (Object.keys(safeBase).length > 0) {
await prisma.itemsBase.update({
where: { id: baseItem.id },
data: safeBase as any,
data: safeBase as Prisma.ItemsBaseUpdateInput,
});
}
}
+5 -1
View File
@@ -1,6 +1,7 @@
"use server";
import { revalidatePath } from "next/cache";
import type { Prisma } from "@/generated/prisma/client";
import { requirePermission } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma";
@@ -54,7 +55,10 @@ export async function updateCatalogPage({
if (typeof data.caption === "string" && !data.captionSave) {
data.captionSave = data.caption.slice(0, 25);
}
await prisma.catalogPages.update({ where: { id }, data: data as any });
await prisma.catalogPages.update({
where: { id },
data: data as Prisma.CatalogPagesUpdateInput,
});
await rcon.updateCatalog();
await logStaffActivity({
staffId: staff.id,
+4 -1
View File
@@ -15,7 +15,10 @@ export async function updateRoomItem(payload: Record<string, unknown>) {
itemId: number;
[key: string]: unknown;
};
await prisma.items.update({ where: { id: itemId }, data: data as any });
await prisma.items.update({
where: { id: itemId },
data: data as Prisma.ItemsUpdateInput,
});
await logStaffActivity({
staffId: staff.id,
action: "room_item_update",