Commit Graph
85 Commits
Author SHA1 Message Date
adrianbonpin 824fbbd13f feat: rearrange game benchmark wizard and improve overall 2026-05-01 01:18:13 +08:00
adrianbonpin 583486de1a feat: streaming progress for bulk sync - real-time updates 2026-04-30 23:09:35 +08:00
adrianbonpin 976b918397 fix: suggest edit only for non-Steam games, improve preset modal, improve steam reviews error handling, update changelog 2026-04-30 21:55:38 +08:00
adrianbonpin 2286f0793c fix: anti-cheat is game-level, not per-device 2026-04-30 21:40:25 +08:00
adrianbonpin 90acde90b6 fix: add null safety to SteamReviews component 2026-04-30 21:38:47 +08:00
adrianbonpin 5fba98cd3d feat(manage): add dashboard as manage landing page
- Add Dashboard as first sidebar nav item under Overview section
- Update /manage page to render DashboardOverview instead of redirecting
- Remove redirect to /manage/users
2026-04-30 20:49:32 +08:00
adrianbonpin ce3c88ec54 feat(manage): add dashboard overview and charts components
- DashboardOverview: stat cards, top contributors, playability distribution,
  and Steam sync health sections
- DashboardCharts: placeholder for future ECharts integration
2026-04-30 20:48:28 +08:00
adrianbonpin 1bfddafde4 feat: add anti-cheat awareness step to benchmark wizard 2026-04-30 20:40:45 +08:00
adrianbonpin fa613dd1c3 Create saved filters component 2026-04-30 20:00:23 +08:00
adrianbonpin bf58394cf0 feat(components): create CommunitySuggestionForm component 2026-04-30 19:58:49 +08:00
adrianbonpin 89cf09d771 feat: Create Steam Reviews embed component 2026-04-30 19:56:50 +08:00
adrianbonpin 7ca90d8fe2 feat: add PlayabilityBadge component 2026-04-30 19:55:10 +08:00
adrianbonpin ec47be0c2b fix: add cn utility and fix import path in AntiCheatBadge 2026-04-30 19:53:58 +08:00
adrianbonpin 971173a3a6 feat: add AntiCheatBadge component 2026-04-30 19:52:26 +08:00
adrianbonpin c54e332a9e feat: enable recursive comment threading up to 3 levels deep 2026-04-29 12:52:26 +08:00
adrianbonpin 171cbaaeee feat: enable recursive comment threading up to 3 levels deep 2026-04-29 12:46:57 +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 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 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 0a6f5ac8d2 feat: non-Steam game edit page and edit button on game details 2026-04-29 00:32:44 +08:00
adrianbonpin c6d4e7b3d1 feat: non-Steam game submission wizard with SteamGridDB integration 2026-04-29 00:00:10 +08:00
adrianbonpin 7e2ab978e1 feat: add performance tier and stability scatter charts 2026-04-28 23:08:01 +08:00
adrianbonpin 4d759160db feat: add 1% low FPS field to benchmark submission wizard 2026-04-28 22:43:46 +08:00
adrianbonpin 748a9fa8c8 fix: tiptap duplicate link extension warning + settings editor number inputs to text+inputMode 2026-04-28 10:07:03 +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 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 012ad64a0d feat: add admin layout with sidebar, auth guard, and navbar link
- Admin layout with server-side auth guard (redirects non-admins)
- Reusable sidebar component with active state detection
- Navbar profile dropdown shows admin link for admin users
- Admin routes are noindexed (robots: false)
- /admin redirects to /admin/users
2026-04-27 21:02:28 +08:00
adrianbonpin ab076a92c8 refactor: remove broken Community Trust chart (TrustBar)
- Remove TrustBar component and chart
- Remove trust data from game-stats API response
- Remove trust section from game detail page
- DB columns and vote endpoints preserved for future voting system
2026-04-27 20:41:28 +08:00
adrianbonpin 1e42cdd39e fix: preset UX — gradient fade edges, Tiptap notes renderer, two-column modal layout with stats/settings, upvote/downvote buttons 2026-04-27 16:26:05 +08:00
adrianbonpin ce6b014f20 fix: use useSyncExternalStore for hydration guard to satisfy React lint rule 2026-04-27 14:31:50 +08:00
adrianbonpin 07467a4812 refactor: remove communityPresets schema, API, and routes 2026-04-27 14:29:30 +08:00
adrianbonpin 9e551acd54 fix(settings-editor): let user type custom category name instead of auto-naming it 'Custom' 2026-04-27 13:37:04 +08:00
adrianbonpin 457d6f5f39 fix: resolve 3 lint issues
- login-form.tsx: suppress unused-vars warning for emailChecked state
- bookmark-button.tsx: use function initializer for isLoading to avoid sync setState in effect
- saved-games.ts: remove unused 'set' parameter from check endpoint
2026-04-27 13:15:16 +08:00
adrianbonpin 10fdbe9cee chore: build cleanup, fix lint errors in our changes, fix login Suspense boundary 2026-04-27 07:31:19 +08:00
adrianbonpin ce2ccad578 feat: update frontend for new upscaler/battery fields
- Replace fsrVersion with upscalerType/upscalerVersion in Preset interface
- Update StatsResponse to use upscalerType/upscalerVersion
- Replace FSR_OPTIONS with UPSCALER_OPTIONS (FSR, DLSS, XeSS, LSFG, Other)
- Update FRAMEGEN_OPTIONS to include LSFG and Other
- Update filter state from fsr to upscaler
- Update isRawPerformerPreset and getFpsColor to use upscalerType
- Update UpscalerBarChart interface and formatCombo function
- Update preset card technology tags to display upscaler version
2026-04-27 07:28:52 +08:00
adrianbonpin 4943f24fd4 feat(wizard): redesign environment step - upscaling options
- Replace FSR Version with flexible Upscaler Type + Version
- Add new upscaler options: AMD FSR, NVIDIA DLSS, Intel XeSS, Lossless Scaling FG, Other
- Expand Frame Gen options: lsfg, other
- Add Estimated Battery Life field (minutes)
- Add Custom / Modified System toggle
- Update review step with new summary rows
- Update submit body with new fields
2026-04-27 07:24:23 +08:00
adrianbonpin bcc0382001 feat(settings-editor): add UX improvements
- Add 'Create custom' button alongside 'Load defaults' when empty
- Add setting type selector (text/number/boolean) when adding new settings
- Add reorder controls for categories (up/down arrows)
- Add reorder controls for settings within each category
2026-04-27 07:21:30 +08:00
adrianbonpin 5ccd3e0f7b feat: add required field indicators to submit wizard 2026-04-27 07:19:29 +08:00
adrianbonpin cece6a40dc fix: add immediatelyRender:false to Tiptap to prevent SSR hydration mismatch 2026-04-27 07:19:09 +08:00
adrianbonpin 91de833417 feat: replace fsrVersion with upscalerType/upscalerVersion, add battery & custom system columns 2026-04-27 07:18:43 +08:00
adrianbonpin 0a3738a778 chore: fix lint issues — move OAuth callback to lazy init, remove unused eslint-disable directives 2026-04-26 12:27:24 -05:00
adrianbonpin 36323f3ba3 refactor(settings-accounts-tab): use better-auth SDK, add error handling and OAuth callback
- Replace raw fetch calls with authClient.listAccounts(), linkSocial(), unlinkAccount()
- Accept authMethods, isLoadingAuthMethods, onRefreshAuthMethods as props
- Add error/retry states for failed account fetches
- Detect OAuth callback return (?linked=true) and show success message
- Show single auth method warning only when isLoadingAuthMethods is false
2026-04-26 12:25:23 -05:00
adrianbonpin 2063c0cb83 Task 5: Refactor SettingsSecurityTab
- Accept authMethods, isLoadingAuthMethods, onRefreshAuthMethods as props
- Fix passkey list URL to /api/auth/passkey/list-user-passkeys
- Fix passkey delete/rename to use /api/auth/passkey/delete-passkey and /api/auth/passkey/update-passkey
- Add error feedback with retry UI for passkey loading failures
- Add passkeyMessage state for success/error feedback
- Keep password validation at 10 characters minimum
- Call onRefreshAuthMethods after password and passkey operations
2026-04-26 12:22:06 -05:00
adrianbonpin 45c071692e feat: create SettingsContainer component with shared auth-methods state
- Add SettingsContainer component with vertical sidebar navigation
- Fetch auth-methods from /api/user/me/auth-methods endpoint
- Pass authMethods props to Security and Accounts tabs
- Update profile page to use SettingsContainer instead of inline sub-tabs
- Use LinkIcon alias to avoid conflict with Next.js Link component
2026-04-26 12:17:47 -05:00
adrianbonpin 12bebf5389 fix: unify password minimum length to 10 characters across all flows 2026-04-26 12:13:08 -05:00
adrianbonpin b0688f8f2a Refactor: Remove server state files and update server log handling
- Deleted server-stopped, server.log, and server.pid files to clean up unused state.
- Updated game-page-client.tsx to enhance button accessibility with cursor-pointer class.
- Modified not-found.tsx, page.tsx, and profile/page.tsx for consistent cursor-pointer usage on links.
- Adjusted search/page.tsx and components/auth/*.tsx for improved button interactions with cursor-pointer.
- Refined navbar.tsx for better user experience with cursor-pointer on navigation links.
- Updated settings-security-tab.tsx for passkey management API endpoints and improved error handling.
- Enhanced saved-games components for better user interaction with cursor-pointer on buttons.
- General code cleanup and consistency improvements across various components.
2026-04-26 12:09:37 -05:00
adrianbonpin 18b9e5d0db fix: resolve lint issues in settings components
- Fix react-hooks/set-state-in-effect by inlining data fetch in useEffect
- Replace useCallback-wrapped fetch functions with plain async functions
- Replace window.location.href with window.location.assign()
- Remove unused eslint-disable directives
- Fix double res.json() call in passkey refresh
2026-04-26 11:31:01 -05:00