Commit Graph
123 Commits
Author SHA1 Message Date
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
adrianbonpin dd4f40b50e feat: add linked accounts settings tab with link/unlink 2026-04-26 11:18:05 -05:00
adrianbonpin bea155005f feat: add security settings tab with password and passkey management 2026-04-26 11:11:48 -05:00
adrianbonpin 9b8b4290dc feat: add settings profile sub-tab with name editing 2026-04-26 11:05:22 -05:00
adrianbonpin ae22a65a9f refactor: widen profile to max-w-7xl and remove avatar from header 2026-04-26 11:03:37 -05:00
adrianbonpin 882827dfa3 refactor: remove profile avatar from navbar dropdown trigger 2026-04-26 11:00:20 -05:00
adrianbonpin 206103d79c feat: add main game entry wizard component 2026-04-26 10:28:30 -05:00
adrianbonpin db677fa9bf feat: add wizard step components 2026-04-26 10:22:56 -05:00
adrianbonpin f89c7c3969 feat: add step indicator component with tooltips 2026-04-26 10:17:20 -05:00
adrianbonpin 83057a73ad feat: add dynamic settings editor component 2026-04-26 10:15:33 -05:00
adrianbonpin de0bcca409 feat: add reusable Tiptap editor component 2026-04-26 10:13:17 -05:00
adrianbonpin 75341c8c19 feat: add saved games grid component 2026-04-26 10:06:25 -05:00
adrianbonpin 6d18337f72 feat: add bookmark button component 2026-04-26 10:03:53 -05:00