diff --git a/app/game/[id]/submit/page.tsx b/app/game/[id]/submit/page.tsx index 4dfa7ea..bda75dc 100644 --- a/app/game/[id]/submit/page.tsx +++ b/app/game/[id]/submit/page.tsx @@ -1,8 +1,9 @@ import { notFound } from "next/navigation" import { db } from "@/lib/db/index" -import { games, gameVersions, performanceEntries, gamePlatformSupport } from "@/lib/db/schema" +import { games, gameVersions, performanceEntries, gamePlatformSupport, entryScreenshots } from "@/lib/db/schema" import { eq, sql } from "drizzle-orm" import { GameEntryWizard, type GameVersionInfo } from "@/components/wizard/game-entry-wizard" +import { getR2PublicUrl } from "@/lib/storage/r2-client" // This page needs live data — skip static generation at build time export const dynamic = "force-dynamic" @@ -77,14 +78,39 @@ export default async function SubmitBenchmarkPage({ } // If editing, fetch the existing performance entry - let editEntry = null + let editEntry: any = null if (edit) { const [entry] = await db .select() .from(performanceEntries) .where(eq(performanceEntries.id, edit)) .limit(1) - editEntry = entry ?? null + + if (entry) { + const publicUrl = getR2PublicUrl() + const screenshots = await db + .select({ + id: entryScreenshots.id, + storageKey: entryScreenshots.storageKey, + orderIndex: entryScreenshots.orderIndex, + width: entryScreenshots.width, + height: entryScreenshots.height, + }) + .from(entryScreenshots) + .where(eq(entryScreenshots.entryId, entry.id)) + .orderBy(entryScreenshots.orderIndex) + + editEntry = { + ...entry, + screenshots: screenshots.map((ss) => ({ + id: ss.id, + url: `${publicUrl}/${ss.storageKey}`, + width: ss.width, + height: ss.height, + orderIndex: ss.orderIndex, + })), + } + } } // Determine default version: when editing, use the entry's version; diff --git a/components/wizard/settings-editor.tsx b/components/wizard/settings-editor.tsx index 3756a08..43593a9 100644 --- a/components/wizard/settings-editor.tsx +++ b/components/wizard/settings-editor.tsx @@ -138,7 +138,7 @@ function SettingRow({ data-setting-row data-category={category} data-title={setting.title} - className="group grid grid-cols-[28px_36px_1fr_1fr_56px] gap-2 items-center rounded-lg border border-border bg-text/3 px-2 py-2 shadow-sm hover:shadow-md hover:bg-text/5 transition-all" + className="group grid grid-cols-[28px_36px_1fr_1fr_56px] gap-2 items-center rounded-lg border border-border bg-text/3 px-2 py-2 shadow-sm hover:shadow-md hover:bg-text/5 transition-shadow transition-colors" initial={{ opacity: 0, x: -8 }} animate={{ opacity: 1, x: 0 }} exit={{ opacity: 0, x: -8 }} diff --git a/components/wizard/steps/review-step.tsx b/components/wizard/steps/review-step.tsx index 8648dc4..f709a30 100644 --- a/components/wizard/steps/review-step.tsx +++ b/components/wizard/steps/review-step.tsx @@ -124,7 +124,7 @@ function ScreenshotCard({ dragListener={false} dragControls={dragControls} as='div' - className='group relative rounded-xl border border-border bg-text/3 overflow-hidden shadow-sm hover:shadow-md hover:border-primary/30 transition-all' + className='group relative rounded-xl border border-border bg-text/3 overflow-hidden shadow-sm hover:shadow-md hover:border-primary/30 transition-shadow transition-colors transition-[border-color]' whileDrag={{ scale: 1.02, boxShadow: "0 12px 40px rgba(0,0,0,0.3)", diff --git a/lib/api/app.ts b/lib/api/app.ts index 39c65d3..0d20a7e 100644 --- a/lib/api/app.ts +++ b/lib/api/app.ts @@ -73,7 +73,7 @@ export const app = new Elysia({ prefix: "/api" }) documentation: { info: { title: "DeckyVault API", - version: "2026.1.0", + version: "2026.1.102", description: "API for DeckyVault — Steam Deck game compatibility, performance reports, and community features.", }, @@ -214,7 +214,7 @@ export const app = new Elysia({ prefix: "/api" }) .use(rateLimit("default")) .get("/", () => ({ name: "DeckyVault API", - version: "2026.1.0", + version: "2026.1.102", })) export type App = typeof app diff --git a/package.json b/package.json index 714a6b1..ddb3653 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "deckyvault", - "version": "2026.1.0", + "version": "2026.1.102", "private": true, "scripts": { "dev": "next dev --experimental-https --webpack",