adrianbonpin
e49908cd73
feat: add sync progress visualization with real-time status updates
2026-04-29 12:01:29 +08:00
adrianbonpin
caae92ca4f
fix: clear selection on pagination/search, add error handling for bulk sync
2026-04-29 11:32:25 +08:00
adrianbonpin
1215aca41a
feat: add checkbox selection and bulk sync to manage games page
2026-04-29 11:25:00 +08:00
adrianbonpin
5d388f6f49
feat: add sync API endpoints (single + bulk)
2026-04-29 10:58:21 +08:00
adrianbonpin
133a4a9cc2
fix: resolve lint warnings - remove unused imports and fix type annotations
2026-04-29 01:47:11 +08:00
adrianbonpin
7903c9fbbd
Tasks 12-13: Fix release date input to type=date, add sort direction toggle to games page
2026-04-29 01:45:04 +08:00
adrianbonpin
dfae540fd4
feat(manage): add manual resync button for games
2026-04-29 01:39:58 +08:00
adrianbonpin
b64e55157e
fix: add horizontal scroll to benchmarks table, add hard delete functionality
...
- Wrap table in overflow-x-auto container with min-w-[800px] to prevent overflow on smaller screens
- Add hard delete (purge) button to actions column for each benchmark entry
- Add confirmation dialog for permanent deletion with warning
- Add handleHardDelete handler that calls DELETE /api/admin/performance/:id/hard-delete
- Add DELETE endpoint for hard-deleting performance entries from the database
- Expand confirmAction state type to include 'hardDelete'
2026-04-29 01:38:29 +08:00
adrianbonpin
2fed5a3964
feat: improve users management UI with card-based layout
2026-04-29 01:34:59 +08:00
adrianbonpin
f7d825f5b3
tasks 5 & 6: update /admin UI refs to /manage, full-width manage layout
2026-04-29 01:33:07 +08:00
adrianbonpin
6642501b91
refactor: rename admin to manage in layout, sidebar, and redirects
2026-04-29 01:31:44 +08:00
adrianbonpin
b68bf36bff
refactor: rename admin route group to manage
2026-04-29 01:25:00 +08:00
adrianbonpin
fcfcce614a
chore: fix lint and type errors from feature bundle implementation
2026-04-29 00:54:39 +08:00
adrianbonpin
2101dfef08
feat: compare page with game selector, stats comparison, and charts
2026-04-29 00:45:16 +08:00
adrianbonpin
0f0176ae39
feat: add compare API endpoints for games and presets
2026-04-29 00:36:21 +08:00
adrianbonpin
0a6f5ac8d2
feat: non-Steam game edit page and edit button on game details
2026-04-29 00:32:44 +08:00
adrianbonpin
b8173bd8f8
feat: non-Steam game editing API, createdBy tracking, and source badges in search
2026-04-29 00:16:43 +08:00
adrianbonpin
c6d4e7b3d1
feat: non-Steam game submission wizard with SteamGridDB integration
2026-04-29 00:00:10 +08:00
adrianbonpin
74fe0447ee
feat: add SteamGridDB proxy API for non-Steam game images
2026-04-28 23:36:00 +08:00
adrianbonpin
cc34fd17ef
feat: add pinned presets with admin pin/unpin and dedicated section
2026-04-28 23:32:32 +08:00
adrianbonpin
23fa7be89f
feat: display system requirements and store stats on game details page
2026-04-28 23:24:33 +08:00
adrianbonpin
7e2ab978e1
feat: add performance tier and stability scatter charts
2026-04-28 23:08:01 +08:00
adrianbonpin
741c19e840
feat: display 1% low FPS in presets, stats API, and game details
2026-04-28 22:56:43 +08:00
adrianbonpin
ab27ba948f
fix: add image fallback chain for missing game covers in search
2026-04-28 22:30:19 +08:00
adrianbonpin
59e3ca338b
fix(search): correct PriceTag logic for free pricing
...
- Return null when price is missing instead of showing 'Free'
- Show green 'Free' badge only when initial === 0 && final === 0
- Show emerald 'Free*' badge with tooltip for promotional free (final === 0, initial > 0)
- Fixes incorrect 'Free' label for games like Days Gone during free weekends
2026-04-28 22:28:01 +08:00
adrianbonpin
c91433958b
fix: remove SteamOS prefix doubling on osVersion display
2026-04-28 22:26:04 +08:00
adrianbonpin
d6a9601591
fix: refactor wizard edit mode to use lazy state init instead of effect setState
2026-04-28 09:51:26 +08:00
adrianbonpin
d8d0e8f826
fix: use vote-based reputation instead of contributions*10
2026-04-28 09:38:38 +08:00
adrianbonpin
a2ff39c1b0
feat: add share and edit links to preset modal, sync URL preset param
2026-04-28 09:32:18 +08:00
adrianbonpin
f502d120a7
refactor: replace preset detail modal layoutId morph with bottom sheet slide-up + category crossfade
...
- Remove layoutId from preset card in game-page-client.tsx and modal in preset-detail-modal.tsx to eliminate text smearing during morph animation.
- Replace modal scale/opacity spring animation with bottom sheet y-slide spring (y: 100% → 0).
- Wrap settings table content in AnimatePresence mode='wait' with keyed motion.div for crossfade when switching categories.
2026-04-28 09:24:08 +08:00
adrianbonpin
1e41531834
fix: improve performance details modal mobile responsiveness
2026-04-28 08:49:14 +08:00
adrianbonpin
45ae0162eb
fix: refresh game page data after benchmark deletion
2026-04-28 08:48:01 +08:00
adrianbonpin
b4db4d8ab8
feat: redesign admin sidebar with grouped sections
...
- Add Management and Moderation sections with labeled groups
- Section labels: muted uppercase micro text
- Section dividers: horizontal on desktop, vertical on mobile
- Active state: bg-primary/10 text-primary rounded-lg
- Widen desktop sidebar from md:w-48 to md:w-56
- Add desktop-only Admin Panel header with LayoutDashboardIcon
- Expand nav to cover all 6 admin pages (users, hardware, games,
reports, benchmarks, comments)
- Update admin layout description to 'Manage your platform'
2026-04-28 08:47:03 +08:00
adrianbonpin
635e9fa46c
feat: add admin comments page with search, filters, pagination, remove/restore
2026-04-28 08:39:55 +08:00
adrianbonpin
37c5d87baa
Add admin benchmarks page with search, filter tabs, pagination, verify/remove/restore actions
2026-04-28 08:31:36 +08:00
adrianbonpin
a109e47f33
feat(admin): add reports admin page with searchable, paginated table
2026-04-28 08:04:17 +08:00
adrianbonpin
2ab4ac5ebc
feat: add admin comments API route
...
- GET /admin/comments: list all comments with pagination, removed filter, and author search
- PATCH /admin/comments/:id/remove: admin-only soft delete
- PATCH /admin/comments/:id/restore: admin-only restore
2026-04-28 07:55:57 +08:00
adrianbonpin
6d27ec03ab
Task 2: Admin Performance Entries API Route
...
- GET /admin/performance — paginated listing with removed/verified/search filters,
joining games, gameVersions, hardware, and user tables
- PATCH /admin/performance/:id/verify — verify entry (contributor or admin)
- PATCH /admin/performance/:id/remove — soft-delete entry (admin only)
- PATCH /admin/performance/:id/restore — restore entry (admin only)
- Registered route in app/api/[[...slugs]]/route.ts and lib/api/index.ts
2026-04-28 07:52:49 +08:00
adrianbonpin
1108264e4c
feat: add admin reports API route
...
- GET /admin/reports with pagination, status filtering, joins, and batch author name lookup
- PATCH /admin/reports/:id/status to review (soft-delete entry) or dismiss
- Register route in lib/api/index.ts and app/api/[[...slugs]]/route.ts
2026-04-28 07:44:39 +08:00
adrianbonpin
37e51f4d48
fix: gracefaul fallback + force-dynamic for build
2026-04-28 07:14:25 +08:00
adrianbonpin
d375112c8e
fix: resolve SQL ambiguity in subquery, remove unused imports, fix lint errors
2026-04-28 02:14:13 +08:00
adrianbonpin
175a58b9d5
feat: update sitemap with new pages and game images, add robots.txt disallow rules
2026-04-28 02:10:51 +08:00
adrianbonpin
e14dafde62
feat: add contact/report page with Discord webhook integration
2026-04-28 02:09:55 +08:00
adrianbonpin
b1cdfae6b7
feat: add contact form API with Discord webhook, rate limiting, and anti-bot checks
2026-04-28 02:04:25 +08:00
adrianbonpin
a36c5c2510
feat: add games list page with search, filters, and infinite scroll
2026-04-28 02:02:03 +08:00
adrianbonpin
4f1f654024
feat: add games listing API endpoint with search, genre/device filter, and sort
2026-04-28 01:45:13 +08:00
adrianbonpin
f35b6aee1e
feat: transfer admin check to middleware and add vertical padding
2026-04-27 23:47:24 +08:00
adrianbonpin
647a26db94
chore: fix build errors and lint warnings from devices/admin implementation
...
- Fix setRole type error (cast to admin-accepted role type)
- Fix OG image edge runtime → nodejs (Drizzle needs Node.js)
- Fix eslint set-state-in-effect warnings
- Fix img → next/image in admin users client
- Remove unused eslint-disable directives
2026-04-27 22:22:52 +08:00
adrianbonpin
cfb5940f3c
feat: add admin games management page
...
- Game list with search and pagination
- Source and sync status badges
- View on site link and delete action
- Uses existing games CRUD API
2026-04-27 21:31:48 +08:00
adrianbonpin
c0c624c2ae
feat: add admin hardware management page with CRUD
...
- Device list fetched from /api/hardware/stats
- Create/edit devices via modal form
- Delete with confirmation dialog
- Uses existing hardware CRUD API endpoints
2026-04-27 21:20:01 +08:00