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:
@@ -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
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user