fix: resolve submit crash (.data.id undefined) & add missing update posts

- Fix game-entry-wizard.tsx: API returns flat { id } not { data: { id } }
- Add update posts for v2026.0.96, v2026.0.97, v2026.0.971
This commit is contained in:
2026-05-09 00:56:01 +08:00
parent dcf6066b2b
commit bb459b3146
6 changed files with 91 additions and 3 deletions
+6
View File
@@ -2,6 +2,12 @@
All notable changes to DeckyVault will be documented in this file. All notable changes to DeckyVault will be documented in this file.
## [2026.0.971] - 2026-05-09
### Fixed
- Submit `can't access property "id", (intermediate value).data is undefined`
- Game Card Height in view extending, not fitting actual content.
## [2026.0.97] - 2026-05-06 ## [2026.0.97] - 2026-05-06
### Fixed ### Fixed
+1 -1
View File
@@ -462,7 +462,7 @@ export function GamePageClient({
> >
<div className='max-w-7xl mx-auto flex gap-4 sm:gap-6'> <div className='max-w-7xl mx-auto flex gap-4 sm:gap-6'>
{/* Cover image */} {/* Cover image */}
<div className='relative shrink-0 aspect-2/3 w-28 sm:w-32 md:w-36 rounded-lg overflow-hidden border border-border bg-text/5'> <div className='relative shrink-0 aspect-2/3 w-28 sm:w-32 md:w-36 rounded-lg overflow-hidden border border-border bg-text/5 h-max'>
{coverImage && !imgError ? ( {coverImage && !imgError ? (
<Image <Image
src={coverImage} src={coverImage}
+2 -2
View File
@@ -235,8 +235,8 @@ export function GameEntryWizard({ gameId, gameVersions, defaultVersionId, editEn
throw new Error(data.error || "Failed to create game version") throw new Error(data.error || "Failed to create game version")
} }
const data = await res.json() as { data: { id: string } } const data = await res.json() as { id: string }
return data.data.id return data.id
} finally { } finally {
setIsCreatingVersion(false) setIsCreatingVersion(false)
} }
+22
View File
@@ -0,0 +1,22 @@
---
title: "Updates Page & Markdown Content Pipeline"
date: "2026-05-01"
version: "2026.0.96"
summary: "New updates page with version release notes, markdown-based content pipeline with auto-extracted chapter navigation and reading progress bar."
---
# Hello everyone!
This release brings a brand new way to track what's changing on the site. We've added an updates page where you can find release notes for every version, complete with chapter navigation and a reading progress bar to help you get through longer posts.
As always, if you run into any issues, feel free to visit the [contact page](https://deckyvault.xyz/contact) to submit a report!
> Adrian Bonpin
## Added
### Updates Page
- Updates page listing all version release notes
- Update viewer with auto-extracted chapter navigation and reading progress bar
- Markdown-based content pipeline (gray-matter + remark/rehype)
- First update post converted from existing changelog
+42
View File
@@ -0,0 +1,42 @@
---
title: "PWA Support, Gamepad Navigation & Sitemap Reliability"
date: "2026-05-06"
version: "2026.0.97"
summary: "PWA with offline caching, gamepad navigation hook, sitemap reliability fixes, multi-genre filtering, and shareable filter URLs."
---
# Hello everyone!
This release is a big one for reliability and quality-of-life. We've added PWA support so you can install DeckyVault on your device and use it offline, gamepad navigation for controller users, and a bunch of fixes around sitemap generation and filtering that should make the experience a lot more consistent.
As always, if you run into any issues, feel free to visit the [contact page](https://deckyvault.xyz/contact) to submit a report!
> Adrian Bonpin
## Fixed
- Sitemap.xml used ISR caching (`revalidate = 3600`) which poisoned the cache with empty responses on DB hiccups; switched to `force-dynamic` for per-request fresh generation
- DB errors during sitemap generation were silently caught and returned as empty arrays (no games indexed); errors now propagate to observability with structured logging
- Games with NULL `syncStatus` were excluded from sitemap due to SQL `<> 'failed'` returning NULL (not TRUE) for NULL values
- Multi-genre selection in games filter panel only applied the first selected genre; now supports comma-separated OR-matching
- FPS range filter included results from non-active devices; now scoped to the selected device filter when present
## Added
- PWA service worker with offline caching for game pages and images (stale-while-revalidate for HTML, cache-first for Steam CDN images)
- Offline fallback page (`offline.html`) when navigating without network
- Gamepad navigation hook (D-pad/left stick focus, A/B/X/Y buttons, context-aware actions)
- Structured logging for sitemap generation metrics (games, devices, timestamps) via `console.info` JSON
- Filter state synchronized to URL query parameters for shareable/bookmarkable filtered views
- WCAG 2.1 AA touch targets (44×44px) on all games page filter controls
## Changed
- Web manifest icons now declare explicit 192px (maskable) and 512px (any) sizes
- Viewport meta tag added with `viewport-fit=cover` and `user-scalable=no` for installed PWA feel
- Apple mobile web app meta tags added for iOS home screen support
- Loading a saved filter now auto-collapses the filter panel for visual feedback
- Sitemap generation flattened into a single function in `app/sitemap.ts` (removed delegation to `lib/sitemap/`)
## Technical
- Removed `lib/sitemap/fetch-dynamic-entries.ts`, `lib/sitemap/build-static-entries.ts`, `lib/sitemap/validate-image-url.ts`
- Removed `app/api/revalidate-sitemap/` route (no longer needed with `force-dynamic`)
- Added `@serwist/next`, `@serwist/precaching`, `@serwist/sw`, `@serwist/strategies`, `@serwist/expiration`, `@serwist/routing`, and `serwist` dependencies
- Build script updated to use `--webpack` flag for `@serwist/next` compatibility
+18
View File
@@ -0,0 +1,18 @@
---
title: "Submit Bug Fix & Game Card Layout Fix"
date: "2026-05-09"
version: "2026.0.971"
summary: "Fixed submit wizard crash when creating new game versions and game card height issue in grid views."
---
# Hello everyone!
A quick patch release to fix two issues that were affecting the submit flow and the games list layout.
As always, if you run into any issues, feel free to visit the [contact page](https://deckyvault.xyz/contact) to submit a report!
> Adrian Bonpin
## Fixed
- Submit wizard crashed with `can't access property "id", (intermediate value).data is undefined` when creating a new game version — the frontend expected a `{ data: { id } }` wrapper but the API returns the created version object directly
- Game Card height in grid views was extending beyond actual content, causing inconsistent row alignment