diff --git a/app/api/[[...slugs]]/route.ts b/app/api/[[...slugs]]/route.ts index 809d7ee..f96e239 100644 --- a/app/api/[[...slugs]]/route.ts +++ b/app/api/[[...slugs]]/route.ts @@ -23,6 +23,7 @@ import { steamSearchRoutes } from "@/lib/api/steam-search" import { searchUnifiedRoutes } from "@/lib/api/search-unified" import { gameStubRoutes } from "@/lib/api/game-stub" import { gameStatsRoutes } from "@/lib/api/game-stats" +import { gamesManualRoutes } from "@/lib/api/games-manual" import { gamesListingRoutes } from "@/lib/api/games-listing" import { steamgridProxyRoutes } from "@/lib/api/steamgrid-proxy" @@ -89,6 +90,8 @@ export const app = new Elysia({ prefix: "/api" }) .use(steamgridProxyRoutes) // Game stats aggregation .use(gameStatsRoutes) + // Manual game creation + .use(gamesManualRoutes) // Saved games .use(savedGamesRoutes) // Contact form diff --git a/app/game/add/page.tsx b/app/game/add/page.tsx new file mode 100644 index 0000000..29451be --- /dev/null +++ b/app/game/add/page.tsx @@ -0,0 +1,30 @@ +import { redirect } from "next/navigation" +import { headers } from "next/headers" +import { auth } from "@/lib/auth" +import { NonSteamWizard } from "@/components/wizard/non-steam-wizard" + +export const dynamic = "force-dynamic" + +export const metadata = { + title: "Add Non-Steam Game", +} + +export default async function AddGamePage() { + const h = await headers() + const session = await auth.api.getSession({ headers: h }) + if (!session?.user) { + redirect("/login") + } + + return ( +
+ Add a non-Steam game to DeckyVault. Search for cover art, set platform support, and submit. +
++ Can't find your game?{" "} + + Add it manually + +
+Redirecting to game page...
++ Enter the game details. Title is required. +
+Comma-separated list
++ Search SteamGridDB for cover art, or paste an image URL manually. +
+Selected Cover
+Loading hardware devices...
+{error}
++ Select devices this game supports and its Proton status. +
+{device.name}
++ {device.deviceType} +
+No hardware devices available
++ Review all details before submitting the game to DeckyVault. +
+Description
+{basicInfo.description}
+No cover art selected
+ )} +No platform support configured
+ )} +