From 94343dedc397de61aa3831ea64ea71e98ccfd25e Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 08:58:47 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20Add=20ARIA=20labels?= =?UTF-8?q?=20to=20dashboard=20cards?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 💡 What: Added context-aware `aria-label` attributes to the icon-only buttons in `CommunityCard` and `FriendsCard` components. Added `.Jules/palette.md` to track this accessibility learning. 🎯 Why: Screen reader users cannot see the "ArrowUpRight" or "MessageSquare" icons and previously heard nothing or unhelpful generic text when focused on these buttons. ♿ Accessibility: The buttons are now properly described to assistive technologies, using dynamic context (e.g. "Message username") where available. Co-authored-by: vireapp <260846454+vireapp@users.noreply.github.com> --- .Jules/palette.md | 3 + build_output.log | 61 + lint_output_final.log | 1433 +++++++++++++++++++ next_start.log | 11 + next_start2.log | 11 + next_start4.log | 10 + src/components/dashboard/community-card.tsx | 2 +- src/components/dashboard/friends-card.tsx | 1 + 8 files changed, 1531 insertions(+), 1 deletion(-) create mode 100644 .Jules/palette.md create mode 100644 build_output.log create mode 100644 lint_output_final.log create mode 100644 next_start.log create mode 100644 next_start2.log create mode 100644 next_start4.log diff --git a/.Jules/palette.md b/.Jules/palette.md new file mode 100644 index 0000000..a437fe3 --- /dev/null +++ b/.Jules/palette.md @@ -0,0 +1,3 @@ +## 2024-05-24 - Missing ARIA Labels on Icon-Only Buttons in Iterated Lists +**Learning:** Found a recurring accessibility issue where icon-only buttons inside mapped lists (like friends or community members) are missing `aria-label` attributes. It is crucial to use the available dynamic context (e.g., usernames) to make these labels descriptive for screen readers, rather than generic (e.g., "Message [username]" instead of just "Message"). +**Action:** When creating or modifying mapped lists containing icon-only buttons, always ensure dynamic, context-aware `aria-label` attributes are added to improve accessibility. \ No newline at end of file diff --git a/build_output.log b/build_output.log new file mode 100644 index 0000000..5fe3a0b --- /dev/null +++ b/build_output.log @@ -0,0 +1,61 @@ + +> prototype@0.1.0 build +> next build + +Attention: Next.js now collects completely anonymous telemetry regarding usage. +This information is used to shape Next.js' roadmap and prioritize features. +You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL: +https://nextjs.org/telemetry + +â–² Next.js 16.1.6 (Turbopack) + +âš  The "middleware" file convention is deprecated. Please use "proxy" instead. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy + Creating an optimized production build ... +✓ Compiled successfully in 34.4s + Running TypeScript ... + Collecting page data using 3 workers ... + Generating static pages using 3 workers (0/31) ... + Generating static pages using 3 workers (7/31) + Generating static pages using 3 workers (15/31) + Generating static pages using 3 workers (23/31) +✓ Generating static pages using 3 workers (31/31) in 424.7ms + Finalizing page optimization ... + +Route (app) +┌ Æ’ / +├ Æ’ /_not-found +├ Æ’ /about +├ Æ’ /api/proxy +├ Æ’ /api/youtube/search +├ Æ’ /auth/callback +├ Æ’ /changelog +├ Æ’ /community +├ Æ’ /cookie-policy +├ Æ’ /dashboard +├ Æ’ /dashboard/(.)join +├ Æ’ /dashboard/(.)rooms/create +├ Æ’ /dashboard/friends +├ Æ’ /dashboard/join +├ Æ’ /dashboard/messages +├ Æ’ /dashboard/rooms +├ Æ’ /dashboard/rooms/create +├ Æ’ /dashboard/settings +├ Æ’ /discover +├ Æ’ /features +├ â—‹ /icon.png +├ Æ’ /login +├ â—‹ /manifest.webmanifest +├ Æ’ /onboarding +├ Æ’ /privacy +├ Æ’ /register +├ â—‹ /robots.txt +├ Æ’ /room/[id] +├ â—‹ /sitemap.xml +├ Æ’ /terms +â”” Æ’ /toast-test + + +Æ’ Proxy (Middleware) + +â—‹ (Static) prerendered as static content +Æ’ (Dynamic) server-rendered on demand diff --git a/lint_output_final.log b/lint_output_final.log new file mode 100644 index 0000000..c44a415 --- /dev/null +++ b/lint_output_final.log @@ -0,0 +1,1433 @@ + +> prototype@0.1.0 lint +> eslint + + +/app/scripts/check-models.js + 1:12 error A `require()` style import is forbidden @typescript-eslint/no-require-imports + 2:14 error A `require()` style import is forbidden @typescript-eslint/no-require-imports + +/app/scripts/test-genkit-models.ts + 37:25 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/scripts/test-sdk.js + 1:32 error A `require()` style import is forbidden @typescript-eslint/no-require-imports + 2:1 error A `require()` style import is forbidden @typescript-eslint/no-require-imports + +/app/scripts/test-supabase-connection.js + 1:12 error A `require()` style import is forbidden @typescript-eslint/no-require-imports + 2:14 error A `require()` style import is forbidden @typescript-eslint/no-require-imports + 3:15 error A `require()` style import is forbidden @typescript-eslint/no-require-imports + 53:19 warning 'd' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/app/about/page.tsx + 50:15 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 50:29 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 50:51 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 50:68 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + +/app/src/app/api/youtube/search/route.ts + 49:51 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 55:12 warning 'error' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/app/community/page.tsx + 78:41 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + 294:52 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + +/app/src/app/dashboard/friends/actions.ts + 142:18 warning 'requestError' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/app/dashboard/friends/add-friend-dialog.tsx + 22:42 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/app/dashboard/friends/friend-requests.tsx + 8:20 warning 'UserPlus' is defined but never used @typescript-eslint/no-unused-vars + 13:44 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/app/dashboard/friends/friends-list.tsx + 65:69 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 74:56 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 75:58 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 88:5 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/app/dashboard/friends/friends-list.tsx:88:5 + 86 | return 0; + 87 | }); +> 88 | setFriends(sorted); + | ^^^^^^^^^^ Avoid calling setState() directly within an effect + 89 | }, [initialFriends]); + 90 | + 91 | useEffect(() => { react-hooks/set-state-in-effect + 172:25 warning 'friendId' is defined but never used @typescript-eslint/no-unused-vars + 179:40 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 195:41 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 203:47 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 213:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 231:35 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 247:36 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 291:57 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 291:68 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + +/app/src/app/dashboard/friends/page.tsx + 2:10 warning 'UserPlus' is defined but never used @typescript-eslint/no-unused-vars + 2:35 warning 'Mail' is defined but never used @typescript-eslint/no-unused-vars + 2:48 warning 'Check' is defined but never used @typescript-eslint/no-unused-vars + 2:55 warning 'X' is defined but never used @typescript-eslint/no-unused-vars + 2:58 warning 'Sparkles' is defined but never used @typescript-eslint/no-unused-vars + 3:10 warning 'Button' is defined but never used @typescript-eslint/no-unused-vars + 6:3 warning 'Card' is defined but never used @typescript-eslint/no-unused-vars + 7:3 warning 'CardHeader' is defined but never used @typescript-eslint/no-unused-vars + 8:3 warning 'CardContent' is defined but never used @typescript-eslint/no-unused-vars + 9:3 warning 'CardTitle' is defined but never used @typescript-eslint/no-unused-vars + 10:3 warning 'CardDescription' is defined but never used @typescript-eslint/no-unused-vars + 12:10 warning 'Avatar' is defined but never used @typescript-eslint/no-unused-vars + 12:18 warning 'AvatarFallback' is defined but never used @typescript-eslint/no-unused-vars + 12:34 warning 'AvatarImage' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/app/dashboard/messages/chat-interface.tsx + 19:3 warning 'Send' is defined but never used @typescript-eslint/no-unused-vars + 21:3 warning 'MoreVertical' is defined but never used @typescript-eslint/no-unused-vars + 24:3 warning 'X' is defined but never used @typescript-eslint/no-unused-vars + 25:3 warning 'Check' is defined but never used @typescript-eslint/no-unused-vars + 30:3 warning 'Paperclip' is defined but never used @typescript-eslint/no-unused-vars + 36:3 warning 'DropdownMenu' is defined but never used @typescript-eslint/no-unused-vars + 37:3 warning 'DropdownMenuContent' is defined but never used @typescript-eslint/no-unused-vars + 38:3 warning 'DropdownMenuItem' is defined but never used @typescript-eslint/no-unused-vars + 39:3 warning 'DropdownMenuTrigger' is defined but never used @typescript-eslint/no-unused-vars + 110:11 error Error: Cannot access variable before it is declared + +`handleRealtimeEvent` is accessed before it is declared, which prevents the earlier access from updating when this value changes over time. + +/app/src/app/dashboard/messages/chat-interface.tsx:110:11 + 108 | }, + 109 | (payload) => { +> 110 | handleRealtimeEvent(payload); + | ^^^^^^^^^^^^^^^^^^^ `handleRealtimeEvent` accessed before it is declared + 111 | }, + 112 | ) + 113 | .subscribe(); + +/app/src/app/dashboard/messages/chat-interface.tsx:120:3 + 118 | }, [currentUser.id, otherUser.id, supabase]); + 119 | +> 120 | const handleRealtimeEvent = (payload: any) => { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 121 | // INSERT + | ^^^^^^^^^^^^^ +> 122 | if (payload.eventType === "INSERT") { + … + | ^^^^^^^^^^^^^ +> 147 | } + | ^^^^^^^^^^^^^ +> 148 | }; + | ^^^^^ `handleRealtimeEvent` is declared here + 149 | + 150 | // Scroll to bottom + 151 | useEffect(() => { react-hooks/immutability + 118:6 warning React Hook useEffect has a missing dependency: 'handleRealtimeEvent'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 453:19 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 453:23 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + 453:38 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + +/app/src/app/dashboard/messages/chat-ui.tsx + 72:11 error Error: Cannot access variable before it is declared + +`handleRealtimeEvent` is accessed before it is declared, which prevents the earlier access from updating when this value changes over time. + +/app/src/app/dashboard/messages/chat-ui.tsx:72:11 + 70 | }, + 71 | (payload) => { +> 72 | handleRealtimeEvent(payload); + | ^^^^^^^^^^^^^^^^^^^ `handleRealtimeEvent` accessed before it is declared + 73 | }, + 74 | ) + 75 | // Also listen to messages sent by ME (to sync deletions/edits across devices or tabs) + +/app/src/app/dashboard/messages/chat-ui.tsx:95:3 + 93 | }, [currentUser.id, otherUser, supabase]); + 94 | +> 95 | const handleRealtimeEvent = (payload: any) => { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 96 | // INSERT + | ^^^^^^^^^^^^^ +> 97 | if (payload.eventType === "INSERT") { + … + | ^^^^^^^^^^^^^ +> 123 | } + | ^^^^^^^^^^^^^ +> 124 | }; + | ^^^^^ `handleRealtimeEvent` is declared here + 125 | + 126 | // Fetch messages when selecting a user + 127 | useEffect(() => { react-hooks/immutability + 93:6 warning React Hook useEffect has a missing dependency: 'handleRealtimeEvent'. Either include it or remove the dependency array react-hooks/exhaustive-deps + +/app/src/app/dashboard/messages/messages-sidebar.tsx + 4:18 warning 'MessageSquare' is defined but never used @typescript-eslint/no-unused-vars + 17:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 92:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/app/dashboard/messages/page.tsx + 2:25 warning 'Search' is defined but never used @typescript-eslint/no-unused-vars + 2:33 warning 'User' is defined but never used @typescript-eslint/no-unused-vars + 3:8 warning 'Link' is defined but never used @typescript-eslint/no-unused-vars + 4:10 warning 'Button' is defined but never used @typescript-eslint/no-unused-vars + 5:10 warning 'ScrollArea' is defined but never used @typescript-eslint/no-unused-vars + 6:10 warning 'Input' is defined but never used @typescript-eslint/no-unused-vars + 8:10 warning 'Avatar' is defined but never used @typescript-eslint/no-unused-vars + 8:18 warning 'AvatarFallback' is defined but never used @typescript-eslint/no-unused-vars + 8:34 warning 'AvatarImage' is defined but never used @typescript-eslint/no-unused-vars + 11:10 warning 'EmptyState' is defined but never used @typescript-eslint/no-unused-vars + 13:10 warning 'CallOverlay' is defined but never used @typescript-eslint/no-unused-vars + 51:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/app/dashboard/page.tsx + 1:1 warning Unused eslint-disable directive (no problems were reported from '@typescript-eslint/no-explicit-any') + +/app/src/app/dashboard/rooms/actions.ts + 66:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 103:49 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 175:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 176:20 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 177:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 178:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 240:51 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 304:7 error 'normalizedMembers' is never reassigned. Use 'const' instead prefer-const + 304:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/app/dashboard/rooms/page.tsx + 5:10 warning 'Badge' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/app/dashboard/rooms/room-actions-menu.tsx + 3:10 warning 'createClient' is defined but never used @typescript-eslint/no-unused-vars + 13:34 warning 'Edit' is defined but never used @typescript-eslint/no-unused-vars + 37:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/app/dashboard/rooms/room-card.tsx + 26:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 41:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 151:50 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 151:62 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + +/app/src/app/dashboard/rooms/room-forms.tsx + 1:1 warning Unused eslint-disable directive (no problems were reported from '@typescript-eslint/no-explicit-any') + 17:3 warning 'Lock' is defined but never used @typescript-eslint/no-unused-vars + 216:19 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + +/app/src/app/dashboard/server-actions.ts + 40:21 warning 'user' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/app/dashboard/settings/account-actions.ts + 19:46 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 43:49 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/app/dashboard/settings/actions.ts + 8:7 warning 'UserSettingsSchema' is assigned a value but never used @typescript-eslint/no-unused-vars + 210:37 warning 'sessionId' is defined but never used @typescript-eslint/no-unused-vars + 258:11 warning 'data' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/app/dashboard/settings/page.tsx + 59:49 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/app/discover/page.tsx + 14:3 warning 'Hash' is defined but never used @typescript-eslint/no-unused-vars + 15:3 warning 'ArrowRight' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/app/features/page.tsx + 10:3 warning 'Video' is defined but never used @typescript-eslint/no-unused-vars + 11:3 warning 'Share2' is defined but never used @typescript-eslint/no-unused-vars + 78:70 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + 79:35 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + +/app/src/app/login/actions.ts + 42:17 warning 'error' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/app/login/page.tsx + 10:20 warning 'useEffect' is defined but never used @typescript-eslint/no-unused-vars + 10:31 warning 'useState' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/app/page.tsx + 10:3 warning 'Radio' is defined but never used @typescript-eslint/no-unused-vars + 11:3 warning 'Users' is defined but never used @typescript-eslint/no-unused-vars + 15:3 warning 'MessageCircle' is defined but never used @typescript-eslint/no-unused-vars + 17:3 warning 'Cpu' is defined but never used @typescript-eslint/no-unused-vars + 18:3 warning 'Shield' is defined but never used @typescript-eslint/no-unused-vars + 324:55 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 324:69 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 338:47 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/app/page.tsx:338:47 + 336 | key={i} + 337 | className="w-8 bg-indigo-500/30 rounded-t-lg" +> 338 | style={{ height: `${Math.random() * 80 + 20}%` }} + | ^^^^^^^^^^^^^ Cannot call impure function + 339 | /> + 340 | ))} + 341 | react-hooks/purity + 536:63 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 536:73 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + +/app/src/app/register/actions.ts + 3:10 warning 'revalidatePath' is defined but never used @typescript-eslint/no-unused-vars + 4:10 warning 'redirect' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/app/register/page.tsx + 11:34 warning 'UserPlus' is defined but never used @typescript-eslint/no-unused-vars + 11:44 warning 'Zap' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/app/terms/page.tsx + 82:45 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 82:51 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 82:57 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 82:70 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 83:55 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + +/app/src/app/toast-test/page.tsx + 54:43 warning 'data' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/backend/ai/actions.ts + 85:9 error 'chatHistory' is never reassigned. Use 'const' instead prefer-const + +/app/src/backend/ai/game-agent.ts + 37:16 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 74:18 warning 'e' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/backend/ai/room-actions.ts + 11:12 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/backend/ai/room-creator.ts + 63:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/ai-chat.tsx + 6:29 warning 'Mic' is defined but never used @typescript-eslint/no-unused-vars + 6:34 warning 'Volume2' is defined but never used @typescript-eslint/no-unused-vars + 37:16 warning 'e' is defined but never used @typescript-eslint/no-unused-vars + 85:14 warning 'e' is defined but never used @typescript-eslint/no-unused-vars + 202:23 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 202:44 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + 202:60 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + +/app/src/components/audio-engine.tsx + 25:54 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 25:83 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 28:61 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 28:90 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/auth/auth-layout.tsx + 3:25 warning 'useState' is defined but never used @typescript-eslint/no-unused-vars + 10:10 warning 'cn' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/avatar-upload.tsx + 5:10 warning 'Avatar' is defined but never used @typescript-eslint/no-unused-vars + 5:18 warning 'AvatarFallback' is defined but never used @typescript-eslint/no-unused-vars + 5:34 warning 'AvatarImage' is defined but never used @typescript-eslint/no-unused-vars + 7:10 warning 'Label' is defined but never used @typescript-eslint/no-unused-vars + 53:9 warning Using `` could result in slower LCP and higher bandwidth. Consider using `` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element + +/app/src/components/banner-upload.tsx + 73:17 warning Using `` could result in slower LCP and higher bandwidth. Consider using `` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element + +/app/src/components/dashboard/UserStatusMenu.tsx + 4:10 warning 'Loader2' is defined but never used @typescript-eslint/no-unused-vars + 22:12 warning 'isPending' is assigned a value but never used @typescript-eslint/no-unused-vars + 31:22 warning 'error' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/dashboard/call-initializer.tsx + 5:21 warning 'useSearchParams' is defined but never used @typescript-eslint/no-unused-vars + 8:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/dashboard/call-listener.tsx + 50:22 warning 'e' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/dashboard/call-overlay.tsx + 26:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 28:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 112:37 error 'rawIp' is never reassigned. Use 'const' instead prefer-const + 143:31 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 148:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 156:44 warning 'error' is assigned a value but never used @typescript-eslint/no-unused-vars + 182:25 error Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment + 250:72 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 300:73 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 321:43 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 344:76 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 366:75 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 392:29 error Error: Cannot access variable before it is declared + +`performCleanup` is accessed before it is declared, which prevents the earlier access from updating when this value changes over time. + +/app/src/components/dashboard/call-overlay.tsx:392:29 + 390 | // Delay cleanup to show message + 391 | setTimeout(() => { +> 392 | performCleanup(); + | ^^^^^^^^^^^^^^ `performCleanup` accessed before it is declared + 393 | }, 2000); + 394 | }) + 395 | .on("broadcast", { event: "request-offer" }, async () => { + +/app/src/components/dashboard/call-overlay.tsx:582:5 + 580 | // --- Handlers --- + 581 | +> 582 | const performCleanup = async () => { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 583 | if (localStream.current) { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 584 | localStream.current.getTracks().forEach((t) => t.stop()); + … + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 599 | // window.location.reload(); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 600 | } + | ^^^^^^ `performCleanup` is declared here + 601 | + 602 | const handleEndCall = async () => { + 603 | // 1. Send signal to peer react-hooks/immutability + 478:8 warning React Hook useEffect has missing dependencies: 'currentUser.email', 'currentUser.user_metadata?.username', 'currentUser.username', 'friend.full_name', 'isANCEnabled', and 'performCleanup'. Either include them or remove the dependency array react-hooks/exhaustive-deps + 488:13 error Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment + 495:13 error Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment + 524:8 warning React Hook useEffect has a missing dependency: 'performCleanup'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 752:119 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/dashboard/call-overlay.tsx:752:119 + 750 |
+ 751 | {[...Array(12)].map((_, i) => ( +> 752 |
+ | ^^^^^^^^^^^^^ Cannot call impure function + 753 | ))} + 754 |
+ 755 | react-hooks/purity + 833:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 837:64 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/dashboard/community-card.tsx + 5:10 warning 'UserPlus' is defined but never used @typescript-eslint/no-unused-vars + 59:34 warning 'i' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/dashboard/friends-card.tsx + 5:25 warning 'ArrowUpRight' is defined but never used @typescript-eslint/no-unused-vars + 13:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 61:39 warning 'i' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/dashboard/hero.tsx + 3:39 warning 'Zap' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/dashboard/profile-card-dialog.tsx + 11:10 warning 'Badge' is defined but never used @typescript-eslint/no-unused-vars + 25:5 warning 'Mail' is defined but never used @typescript-eslint/no-unused-vars + 36:8 warning 'Link' is defined but never used @typescript-eslint/no-unused-vars + 58:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 105:25 warning Using `` could result in slower LCP and higher bandwidth. Consider using `` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element + +/app/src/components/dashboard/settings/sections/AISettings.tsx + 7:20 warning 'Bot' is defined but never used @typescript-eslint/no-unused-vars + 24:54 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + +/app/src/components/dashboard/settings/sections/AccountSettings.tsx + 3:10 warning 'useState' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/dashboard/settings/sections/AppearanceSettings.tsx + 5:10 warning 'Label' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/dashboard/settings/sections/DeveloperSettings.tsx + 9:10 warning 'cn' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/dashboard/settings/sections/PreferencesSettings.tsx + 5:29 warning 'CardDescription' is defined but never used @typescript-eslint/no-unused-vars + 9:17 warning 'Clock' is defined but never used @typescript-eslint/no-unused-vars + 33:23 warning 'setFontScale' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/components/dashboard/settings/sections/PrivacySettings.tsx + 7:19 warning 'Eye' is defined but never used @typescript-eslint/no-unused-vars + 7:24 warning 'EyeOff' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/dashboard/settings/sections/ProfileSettings.tsx + 35:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/dashboard/settings/sections/SecuritySettings.tsx + 13:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 14:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 23:46 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 28:54 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/dashboard/settings/settings-client.tsx + 6:10 warning 'cn' is defined but never used @typescript-eslint/no-unused-vars + 7:10 warning 'Button' is defined but never used @typescript-eslint/no-unused-vars + 9:8 warning 'Link' is defined but never used @typescript-eslint/no-unused-vars + 33:20 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 58:20 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 59:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 131:34 error Error: Cannot create components during render + +Components created during render will reset their state each time they are created. Declare components outside of render. + +/app/src/components/dashboard/settings/settings-client.tsx:131:34 + 129 | transition={{ duration: 0.3 }} + 130 | > +> 131 | + | ^^^^^^^^^^ This component is created during render + 132 | + 133 | ) : ( + 134 | 75 | const MobileMenu = () => ( + | ^^^^^^^ +> 76 |
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 77 |
+ … + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 103 |
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 104 | ); + | ^^^^^^ The component is created during render here + 105 | + 106 | return ( + 107 |
react-hooks/static-components + +/app/src/components/dashboard/settings/settings-sidebar.tsx + 4:39 warning 'Sparkles' is defined but never used @typescript-eslint/no-unused-vars + 28:62 warning 'className' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/global-call-overlay.tsx + 10:52 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 94:8 warning React Hook useEffect has missing dependencies: 'isActive', 'startCall', and 'supabase'. Either include them or remove the dependency array react-hooks/exhaustive-deps + +/app/src/components/notifications/notification-bell.tsx + 45:12 warning 'payload' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/activities/virtual-tv.tsx + 8:18 warning 'Globe' is defined but never used @typescript-eslint/no-unused-vars + 8:29 warning 'RefreshCw' is defined but never used @typescript-eslint/no-unused-vars + 8:100 warning 'Link' is defined but never used @typescript-eslint/no-unused-vars + 194:24 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 204:49 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 204:57 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 213:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 213:56 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 258:8 warning React Hook useEffect has missing dependencies: 'fetchChannels' and 'loading'. Either include them or remove the dependency array react-hooks/exhaustive-deps + 268:8 warning React Hook useEffect has a missing dependency: 'fetchChannels'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 552:49 warning Using `` could result in slower LCP and higher bandwidth. Consider using `` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element + +/app/src/components/room/activity-launcher.tsx + 1:1 warning Unused eslint-disable directive (no problems were reported from '@typescript-eslint/no-explicit-any') + 4:10 warning 'useState' is defined but never used @typescript-eslint/no-unused-vars + 6:14 warning 'Globe' is defined but never used @typescript-eslint/no-unused-vars + 36:3 warning 'isOwner' is defined but never used @typescript-eslint/no-unused-vars + 37:3 warning 'virtualTVChannel' is defined but never used @typescript-eslint/no-unused-vars + 38:3 warning 'onVirtualTVChannelSelect' is defined but never used @typescript-eslint/no-unused-vars + 39:3 warning 'userRegion' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/ai-chat.tsx + 7:19 warning 'Send' is defined but never used @typescript-eslint/no-unused-vars + 55:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 143:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars + 143:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/room/chat.tsx + 26:12 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 37:5 warning 'slowModeSeconds' is assigned a value but never used @typescript-eslint/no-unused-vars + 59:13 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/components/room/chat.tsx:59:13 + 57 | }); + 58 | } else if (user) { +> 59 | setCurrentUser(user); + | ^^^^^^^^^^^^^^ Avoid calling setState() directly within an effect + 60 | } + 61 | }, [user, supabase]); + 62 | react-hooks/set-state-in-effect + 61:8 warning React Hook useEffect has a missing dependency: 'currentUser'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 66:13 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/components/room/chat.tsx:66:13 + 64 | useEffect(() => { + 65 | if (welcomeMessage) { +> 66 | setMessages((prev) => { + | ^^^^^^^^^^^ Avoid calling setState() directly within an effect + 67 | if (prev.some(m => m.id === "welcome")) return prev; + 68 | return [{ + 69 | id: "welcome", react-hooks/set-state-in-effect + +/app/src/components/room/external-service-view.tsx + 48:37 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + 49:12 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + 74:49 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + 74:70 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities + +/app/src/components/room/games/external-game-frame.tsx + 15:5 warning 'Users' is defined but never used @typescript-eslint/no-unused-vars + 16:5 warning 'Copy' is defined but never used @typescript-eslint/no-unused-vars + 17:5 warning 'Check' is defined but never used @typescript-eslint/no-unused-vars + 18:5 warning 'Search' is defined but never used @typescript-eslint/no-unused-vars + 35:5 warning 'roomId' is defined but never used @typescript-eslint/no-unused-vars + 36:5 warning 'user' is defined but never used @typescript-eslint/no-unused-vars + 42:11 warning 'supabase' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/games/game-center.tsx + 4:10 warning 'useState' is defined but never used @typescript-eslint/no-unused-vars + 16:3 warning 'HelpCircle' is defined but never used @typescript-eslint/no-unused-vars + 21:3 warning 'Globe' is defined but never used @typescript-eslint/no-unused-vars + 323:9 warning 'item' is assigned a value but never used @typescript-eslint/no-unused-vars + 460:3 warning 'border' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/games/memory-match.tsx + 4:10 warning 'useState' is defined but never used @typescript-eslint/no-unused-vars + 9:5 warning 'roomId' is defined but never used @typescript-eslint/no-unused-vars + 10:5 warning 'user' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/games/pong.tsx + 4:10 warning 'useState' is defined but never used @typescript-eslint/no-unused-vars + 9:5 warning 'roomId' is defined but never used @typescript-eslint/no-unused-vars + 10:5 warning 'user' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/games/rock-paper-scissors.tsx + 6:34 warning 'Trophy' is defined but never used @typescript-eslint/no-unused-vars + 6:54 warning 'BrainCircuit' is defined but never used @typescript-eslint/no-unused-vars + 30:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 40:10 warning 'localReveal' is assigned a value but never used @typescript-eslint/no-unused-vars + 40:23 warning 'setLocalReveal' is assigned a value but never used @typescript-eslint/no-unused-vars + 99:13 error Error: Cannot access variable before it is declared + +`makeAiMove` is accessed before it is declared, which prevents the earlier access from updating when this value changes over time. + +/app/src/components/room/games/rock-paper-scissors.tsx:99:13 + 97 | const moves = ["rock", "paper", "scissors"] as const; + 98 | const randomMove = moves[Math.floor(Math.random() * moves.length)]; +> 99 | makeAiMove(randomMove, "I panicked!"); + | ^^^^^^^^^^ `makeAiMove` accessed before it is declared + 100 | } else { + 101 | makeAiMove(move as any, result.comment); + 102 | } + +/app/src/components/room/games/rock-paper-scissors.tsx:120:3 + 118 | }, [gameState, isAiGame, hasAiMoved]); + 119 | +> 120 | const makeAiMove = (move: "rock" | "paper" | "scissors", comment?: string) => { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 121 | const aiId = "AI"; + | ^^^^^^^^^^^^^^^^^^^^^^ +> 122 | const aiPlayer = gameState.players[aiId]; + … + | ^^^^^^^^^^^^^^^^^^^^^^ +> 150 | broadcastState(newState); + | ^^^^^^^^^^^^^^^^^^^^^^ +> 151 | }; + | ^^^^^ `makeAiMove` is declared here + 152 | + 153 | const joinGame = () => { + 154 | const currentPlayers = Object.keys(gameState.players); react-hooks/immutability + 101:32 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 118:6 warning React Hook useEffect has missing dependencies: 'isThinking' and 'makeAiMove'. Either include them or remove the dependency array react-hooks/exhaustive-deps + 181:9 error 'newState' is never reassigned. Use 'const' instead prefer-const + +/app/src/components/room/games/sketch.tsx + 17:3 warning 'User' is defined but never used @typescript-eslint/no-unused-vars + 99:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 196:6 warning React Hook useEffect has missing dependencies: 'broadcastState', 'gameState.players.length', and 'user.id'. Either include them or remove the dependency array react-hooks/exhaustive-deps + 229:6 warning React Hook useEffect has missing dependencies: 'handleRoundEnd', 'handleWordSelect', and 'startNextRound'. Either include them or remove the dependency array react-hooks/exhaustive-deps + 427:6 warning React Hook useEffect has missing dependencies: 'broadcastState', 'handleRoundEnd', 'roomId', and 'supabase'. Either include them or remove the dependency array react-hooks/exhaustive-deps + +/app/src/components/room/games/tic-tac-toe.tsx + 7:30 warning 'BrainCircuit' is defined but never used @typescript-eslint/no-unused-vars + 20:7 warning 'WINNING_LINES' is assigned a value but never used @typescript-eslint/no-unused-vars + 37:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 113:11 error Error: Cannot access variable before it is declared + +`broadcastState` is accessed before it is declared, which prevents the earlier access from updating when this value changes over time. + +/app/src/components/room/games/tic-tac-toe.tsx:113:11 + 111 | + 112 | setGameState(newState); +> 113 | broadcastState(newState); + | ^^^^^^^^^^^^^^ `broadcastState` accessed before it is declared + 114 | + 115 | if (winner) toast.success(`${winner === "AI" ? "VIRE" : winner} Wins!`); + 116 | else if (isDraw) toast("Draw!"); + +/app/src/components/room/games/tic-tac-toe.tsx:126:3 + 124 | }, [gameState, isAiGame]); // Check deps carefully + 125 | +> 126 | const broadcastState = async (newState: GameState) => { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 127 | await supabase.channel(`room_${roomId}_tictactoe`).send({ + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 128 | type: "broadcast", + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 129 | event: "state_update", + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 130 | payload: newState, + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 131 | }); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 132 | }; + | ^^^^^ `broadcastState` is declared here + 133 | + 134 | const handleJoin = (player: "X" | "O") => { + 135 | if ( react-hooks/immutability + 124:6 warning React Hook useEffect has missing dependencies: 'broadcastState' and 'isThinking'. Either include them or remove the dependency array react-hooks/exhaustive-deps + 153:9 error 'newState' is never reassigned. Use 'const' instead prefer-const + +/app/src/components/room/games/trivia.tsx + 3:31 warning 'useRef' is defined but never used @typescript-eslint/no-unused-vars + 12:3 warning 'XCircle' is defined but never used @typescript-eslint/no-unused-vars + 93:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 159:11 error Error: Cannot access variable before it is declared + +`broadcastState` is accessed before it is declared, which prevents the earlier access from updating when this value changes over time. + +/app/src/components/room/games/trivia.tsx:159:11 + 157 | const existing = prev.players.find((p) => p.id === payload.userId); + 158 | if (existing) { +> 159 | broadcastState(prev); + | ^^^^^^^^^^^^^^ `broadcastState` accessed before it is declared + 160 | return prev; + 161 | } + 162 | + +/app/src/components/room/games/trivia.tsx:185:3 + 183 | }, [roomId, supabase, user.id]); + 184 | +> 185 | const broadcastState = async (state: GameState) => { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 186 | await supabase.channel(`room_${roomId}_trivia`).send({ + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 187 | type: "broadcast", + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 188 | event: "state_update", + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 189 | payload: state, + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 190 | }); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 191 | }; + | ^^^^^ `broadcastState` is declared here + 192 | + 193 | // Timer Logic + 194 | useEffect(() => { react-hooks/immutability + 183:6 warning React Hook useEffect has a missing dependency: 'broadcastState'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 209:9 error Error: Cannot access variable before it is declared + +`handleRoundEnd` is accessed before it is declared, which prevents the earlier access from updating when this value changes over time. + +/app/src/components/room/games/trivia.tsx:209:9 + 207 | if (left <= 0 && isHost) { + 208 | // Round Over +> 209 | handleRoundEnd(); + | ^^^^^^^^^^^^^^ `handleRoundEnd` accessed before it is declared + 210 | } + 211 | }, 1000); + 212 | + +/app/src/components/room/games/trivia.tsx:252:3 + 250 | }; + 251 | +> 252 | const handleRoundEnd = () => { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 253 | // Calculate scores + | ^^^^^^^^^^^^^^^^^^^^^^^ +> 254 | const correctAnswer = + … + | ^^^^^^^^^^^^^^^^^^^^^^^ +> 272 | broadcastState(newState); + | ^^^^^^^^^^^^^^^^^^^^^^^ +> 273 | }; + | ^^^^^ `handleRoundEnd` is declared here + 274 | + 275 | const handleNextQuestion = () => { + 276 | if (!isHost) return; react-hooks/immutability + 214:6 warning React Hook useEffect has a missing dependency: 'handleRoundEnd'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 261:11 warning 'isLastQuestion' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/games/word-race.tsx + 12:3 warning 'Timer' is defined but never used @typescript-eslint/no-unused-vars + 13:3 warning 'User' is defined but never used @typescript-eslint/no-unused-vars + 68:10 warning 'countdown' is assigned a value but never used @typescript-eslint/no-unused-vars + 68:21 warning 'setCountdown' is assigned a value but never used @typescript-eslint/no-unused-vars + 122:6 warning React Hook useEffect has a missing dependency: 'broadcastState'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 275:6 warning React Hook useEffect has missing dependencies: 'broadcastState' and 'gameState'. Either include them or remove the dependency array react-hooks/exhaustive-deps + +/app/src/components/room/music-player/room-music-player.tsx + 3:20 warning 'useRef' is defined but never used @typescript-eslint/no-unused-vars + 3:28 warning 'useEffect' is defined but never used @typescript-eslint/no-unused-vars + 5:10 warning 'Input' is defined but never used @typescript-eslint/no-unused-vars + 14:3 warning 'Search' is defined but never used @typescript-eslint/no-unused-vars + 15:3 warning 'Plus' is defined but never used @typescript-eslint/no-unused-vars + 16:3 warning 'Radio' is defined but never used @typescript-eslint/no-unused-vars + 19:3 warning 'Maximize2' is defined but never used @typescript-eslint/no-unused-vars + 21:3 warning 'MoreVertical' is defined but never used @typescript-eslint/no-unused-vars + 22:3 warning 'Layout' is defined but never used @typescript-eslint/no-unused-vars + 73:9 warning 'handleAdd' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/notes.tsx + 12:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 21:29 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/room/participants-strip.tsx + 22:11 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/room/polls.tsx + 7:10 warning 'BarChart2' is defined but never used @typescript-eslint/no-unused-vars + 27:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 35:10 warning 'creationMode' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/reactions.tsx + 36:9 error Error: Cannot access variable before it is declared + +`addReaction` is accessed before it is declared, which prevents the earlier access from updating when this value changes over time. + +/app/src/components/room/reactions.tsx:36:9 + 34 | channel + 35 | .on("broadcast", { event: "reaction" }, ({ payload }) => { +> 36 | addReaction(payload.emoji); + | ^^^^^^^^^^^ `addReaction` accessed before it is declared + 37 | }) + 38 | .subscribe(); + 39 | + +/app/src/components/room/reactions.tsx:45:3 + 43 | }, [roomId, supabase]); + 44 | +> 45 | const addReaction = (emoji: string) => { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 46 | const id = Math.random().toString(36).substring(7); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 47 | // Randomize start position slightly around center-bottom or random + … + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 55 | }, 2000); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 56 | }; + | ^^^^^ `addReaction` is declared here + 57 | + 58 | const sendReaction = async (emoji: string) => { + 59 | // Show locally instantly react-hooks/immutability + +/app/src/components/room/room-client-v2.tsx + 12:3 warning 'ActivityLauncher' is defined but never used @typescript-eslint/no-unused-vars + 13:3 warning 'ActivityType' is defined but never used @typescript-eslint/no-unused-vars + 31:10 warning 'RoomTimer' is defined but never used @typescript-eslint/no-unused-vars + 38:3 warning 'Trash2' is defined but never used @typescript-eslint/no-unused-vars + 44:3 warning 'Bot' is defined but never used @typescript-eslint/no-unused-vars + 47:3 warning 'Layout' is defined but never used @typescript-eslint/no-unused-vars + 48:3 warning 'Music2' is defined but never used @typescript-eslint/no-unused-vars + 51:14 warning 'SidebarIcon' is defined but never used @typescript-eslint/no-unused-vars + 61:10 warning 'deleteRoom' is defined but never used @typescript-eslint/no-unused-vars + 68:19 warning 'YouTubeProps' is defined but never used @typescript-eslint/no-unused-vars + 173:170 warning 'resetMedia' is assigned a value but never used @typescript-eslint/no-unused-vars + 173:190 warning 'launchMedia' is assigned a value but never used @typescript-eslint/no-unused-vars + 179:10 warning 'isDeleting' is assigned a value but never used @typescript-eslint/no-unused-vars + 179:22 warning 'setIsDeleting' is assigned a value but never used @typescript-eslint/no-unused-vars + 243:5 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/components/room/room-client-v2.tsx:243:5 + 241 | + 242 | useEffect(() => { +> 243 | detectRegion(); + | ^^^^^^^^^^^^ Avoid calling setState() directly within an effect + 244 | }, []); + 245 | + 246 | // Load Persisted Settings react-hooks/set-state-in-effect + 252:15 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/components/room/room-client-v2.tsx:252:15 + 250 | const saved = localStorage.getItem("vire_room_settings"); + 251 | if (saved) { +> 252 | try { setPersonalSettings(prev => ({ ...prev, ...JSON.parse(saved) })); } + | ^^^^^^^^^^^^^^^^^^^ Avoid calling setState() directly within an effect + 253 | catch (e) { console.error("Failed to load settings", e); } + 254 | } + 255 | } react-hooks/set-state-in-effect + 307:6 warning React Hook useEffect has a missing dependency: 'setShowDebug'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 395:6 warning React Hook useEffect has a missing dependency: 'setShowWelcome'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 401:6 warning React Hook useEffect has a missing dependency: 'setSidebarView'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 767:6 warning React Hook useEffect has missing dependencies: 'setActivity' and 'supabase'. Either include them or remove the dependency array react-hooks/exhaustive-deps + +/app/src/components/room/room-home-overlay.tsx + 8:5 warning 'LayoutGrid' is defined but never used @typescript-eslint/no-unused-vars + 9:5 warning 'Bot' is defined but never used @typescript-eslint/no-unused-vars + 40:24 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/room/room-home-overlay.tsx:40:24 + 38 | scale: [0.5, 1, 0.5], + 39 | y: [0, -30, 0], +> 40 | x: [0, Math.random() * 20 - 10, 0], + | ^^^^^^^^^^^^^ Cannot call impure function + 41 | }} + 42 | transition={{ + 43 | duration, react-hooks/purity + 204:9 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/components/room/room-home-overlay.tsx:204:9 + 202 | + 203 | useEffect(() => { +> 204 | setParticles( + | ^^^^^^^^^^^^ Avoid calling setState() directly within an effect + 205 | Array.from({ length: 12 }, (_, i) => ({ + 206 | id: i, + 207 | delay: i * 0.5, react-hooks/set-state-in-effect + 298:37 warning 'index' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/room-media.tsx + 7:10 warning 'Input' is defined but never used @typescript-eslint/no-unused-vars + 8:10 warning 'Play' is defined but never used @typescript-eslint/no-unused-vars + 8:16 warning 'Pause' is defined but never used @typescript-eslint/no-unused-vars + 8:31 warning 'LinkIcon' is defined but never used @typescript-eslint/no-unused-vars + 9:10 warning 'toast' is defined but never used @typescript-eslint/no-unused-vars + 31:10 warning 'inputValue' is assigned a value but never used @typescript-eslint/no-unused-vars + 31:22 warning 'setInputValue' is assigned a value but never used @typescript-eslint/no-unused-vars + 49:7 error Error: Cannot access variable before it is declared + +`broadcast` is accessed before it is declared, which prevents the earlier access from updating when this value changes over time. + +/app/src/components/room/room-media.tsx:49:7 + 47 | setUrl(initialUrl); + 48 | setIsPlaying(true); +> 49 | broadcast("url", { url: initialUrl }); + | ^^^^^^^^^ `broadcast` accessed before it is declared + 50 | } + 51 | }, [initialUrl]); + 52 | + +/app/src/components/room/room-media.tsx:97:3 + 95 | }, [roomId, supabase, player]); + 96 | +> 97 | const broadcast = async (type: string, payload: any) => { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 98 | if (!channelRef.current) return; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 99 | await channelRef.current.send({ + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 100 | type: "broadcast", + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 101 | event: "media-state", + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 102 | payload: { type, sender: user.id, ...payload }, + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 103 | }); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> 104 | }; + | ^^^^^ `broadcast` is declared here + 105 | + 106 | const handlePlayPause = () => { + 107 | const newState = !isPlaying; react-hooks/immutability + 51:6 warning React Hook useEffect has missing dependencies: 'broadcast' and 'url'. Either include them or remove the dependency array react-hooks/exhaustive-deps + 106:9 warning 'handlePlayPause' is assigned a value but never used @typescript-eslint/no-unused-vars + 112:9 warning 'handleSeek' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/room-members-list.tsx + 14:49 warning 'Circle' is defined but never used @typescript-eslint/no-unused-vars + 62:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 97:8 warning React Hook useEffect has missing dependencies: 'fetchMembers' and 'supabase'. Either include them or remove the dependency array react-hooks/exhaustive-deps + 106:25 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 119:25 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/room/room-mobile-dock.tsx + 45:69 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 91:37 warning 'index' is defined but never used @typescript-eslint/no-unused-vars + 94:31 warning 'isHome' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/room-navigation.tsx + 206:11 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 215:22 warning 'id' is defined but never used @typescript-eslint/no-unused-vars + 323:11 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 331:26 warning 'id' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/room-settings-dialog.tsx + 7:3 warning 'DialogDescription' is defined but never used @typescript-eslint/no-unused-vars + 8:3 warning 'DialogHeader' is defined but never used @typescript-eslint/no-unused-vars + 88:41 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 111:20 warning 'setSlowMode' is assigned a value but never used @typescript-eslint/no-unused-vars + 125:26 warning 'setCanScreenShare' is assigned a value but never used @typescript-eslint/no-unused-vars + 128:21 warning 'setCanUseMic' is assigned a value but never used @typescript-eslint/no-unused-vars + 131:24 warning 'setCanUseCamera' is assigned a value but never used @typescript-eslint/no-unused-vars + 156:28 warning 'setNoiseSuppression' is assigned a value but never used @typescript-eslint/no-unused-vars + 161:53 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 212:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 231:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 244:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 601:93 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + +/app/src/components/room/room-welcome-screen.tsx + 6:22 warning 'Music2' is defined but never used @typescript-eslint/no-unused-vars + 29:16 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/room/room-welcome-screen.tsx:29:16 + 27 | y: [-20, -400], + 28 | opacity: [0, 0.8, 0], +> 29 | x: [0, Math.random() * 40 - 20], + | ^^^^^^^^^^^^^ Cannot call impure function + 30 | }} + 31 | transition={{ + 32 | duration, react-hooks/purity + 61:5 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/components/room/room-welcome-screen.tsx:61:5 + 59 | + 60 | useEffect(() => { +> 61 | setParticles(Array.from({ length: 20 }, (_, i) => ({ + | ^^^^^^^^^^^^ Avoid calling setState() directly within an effect + 62 | id: i, + 63 | delay: i * 0.3, + 64 | size: 2 + Math.random() * 4, react-hooks/set-state-in-effect + 266:82 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities + +/app/src/components/room/task-board.tsx + 7:19 warning 'GripVertical' is defined but never used @typescript-eslint/no-unused-vars + 7:33 warning 'CheckCircle2' is defined but never used @typescript-eslint/no-unused-vars + 7:47 warning 'Circle' is defined but never used @typescript-eslint/no-unused-vars + 25:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 29:47 warning 'onBack' is defined but never used @typescript-eslint/no-unused-vars + 33:29 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 86:13 warning 'source' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/timer.tsx + 11:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 21:29 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 57:7 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/components/room/timer.tsx:57:7 + 55 | }, 1000); + 56 | } else if (timeLeft === 0) { +> 57 | setIsRunning(false); + | ^^^^^^^^^^^^ Avoid calling setState() directly within an effect + 58 | } + 59 | + 60 | return () => clearInterval(interval); react-hooks/set-state-in-effect + +/app/src/components/room/video-conference.tsx + 7:11 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 29:5 warning 'roomId' is defined but never used @typescript-eslint/no-unused-vars + 30:5 warning 'user' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/room/whiteboard.tsx + 6:10 warning 'Eraser' is defined but never used @typescript-eslint/no-unused-vars + 6:18 warning 'Pencil' is defined but never used @typescript-eslint/no-unused-vars + 6:34 warning 'Undo' is defined but never used @typescript-eslint/no-unused-vars + 7:10 warning 'toast' is defined but never used @typescript-eslint/no-unused-vars + 14:11 warning 'DrawEvent' is defined but never used @typescript-eslint/no-unused-vars + 23:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 27:42 warning 'user' is defined but never used @typescript-eslint/no-unused-vars + 34:29 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 60:9 error Error: Cannot access variable before it is declared + +`drawOnCanvas` is accessed before it is declared, which prevents the earlier access from updating when this value changes over time. + +/app/src/components/room/whiteboard.tsx:60:9 + 58 | channel + 59 | .on("broadcast", { event: "draw" }, ({ payload }) => { +> 60 | drawOnCanvas(payload.prev, payload.curr, payload.color, payload.width); + | ^^^^^^^^^^^^ `drawOnCanvas` accessed before it is declared + 61 | }) + 62 | .on("broadcast", { event: "clear" }, () => { + 63 | ctx.clearRect(0, 0, canvas.width, canvas.height); + +/app/src/components/room/whiteboard.tsx:79:3 + 77 | }, [roomId, supabase]); + 78 | +> 79 | const drawOnCanvas = ( + | ^^^^^^^^^^^^^^^^^^^^^^ +> 80 | prev: Point, + | ^^^^^^^^^^^^^^^^ +> 81 | curr: Point, + … + | ^^^^^^^^^^^^^^^^ +> 96 | ctx.closePath(); + | ^^^^^^^^^^^^^^^^ +> 97 | }; + | ^^^^^ `drawOnCanvas` is declared here + 98 | + 99 | const handleStart = (e: React.MouseEvent | React.TouchEvent) => { + 100 | e.preventDefault(); // Prevent scrolling on touch react-hooks/immutability + +/app/src/components/room/youtube-search.tsx + 68:6 warning React Hook useEffect has a missing dependency: 'performSearch'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 87:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/server/create-server-modal.tsx + 38:18 warning 'error' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/server/server-sidebar.tsx + 3:10 warning 'redirect' is defined but never used @typescript-eslint/no-unused-vars + 10:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/components/ui/animated-input.tsx + 4:18 warning 'AnimatePresence' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/ui/calendar.tsx + 57:45 warning 'props' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/ui/card-nav.tsx + 109:6 warning React Hook useLayoutEffect has a missing dependency: 'updateHeight'. Either include it or remove the dependency array react-hooks/exhaustive-deps + 176:13 warning Using `` could result in slower LCP and higher bandwidth. Consider using `` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element + +/app/src/components/ui/global-mesh.tsx + 68:42 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/global-mesh.tsx:68:42 + 66 | for(let i=0; i 68 | const p1 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); + | ^^^^^^^^^^^^^ Cannot call impure function + 69 | const p2 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); + 70 | points.push(p1); + 71 | points.push(p2); react-hooks/purity + 68:61 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/global-mesh.tsx:68:61 + 66 | for(let i=0; i 68 | const p1 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); + | ^^^^^^^^^^^^^ Cannot call impure function + 69 | const p2 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); + 70 | points.push(p1); + 71 | points.push(p2); react-hooks/purity + 68:80 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/global-mesh.tsx:68:80 + 66 | for(let i=0; i 68 | const p1 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); + | ^^^^^^^^^^^^^ Cannot call impure function + 69 | const p2 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); + 70 | points.push(p1); + 71 | points.push(p2); react-hooks/purity + 69:42 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/global-mesh.tsx:69:42 + 67 | // Random start/end points on sphere + 68 | const p1 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); +> 69 | const p2 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); + | ^^^^^^^^^^^^^ Cannot call impure function + 70 | points.push(p1); + 71 | points.push(p2); + 72 | } react-hooks/purity + 69:61 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/global-mesh.tsx:69:61 + 67 | // Random start/end points on sphere + 68 | const p1 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); +> 69 | const p2 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); + | ^^^^^^^^^^^^^ Cannot call impure function + 70 | points.push(p1); + 71 | points.push(p2); + 72 | } react-hooks/purity + 69:80 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/global-mesh.tsx:69:80 + 67 | // Random start/end points on sphere + 68 | const p1 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); +> 69 | const p2 = new THREE.Vector3(Math.random()-0.5, Math.random()-0.5, Math.random()-0.5).normalize().multiplyScalar(1.2); + | ^^^^^^^^^^^^^ Cannot call impure function + 70 | points.push(p1); + 71 | points.push(p2); + 72 | } react-hooks/purity + +/app/src/components/ui/hls-player.tsx + 5:23 warning 'Play' is defined but never used @typescript-eslint/no-unused-vars + 30:16 warning 'isPlaying' is assigned a value but never used @typescript-eslint/no-unused-vars + 50:44 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 50:55 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 127:50 warning 'e' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/ui/orbital-background.tsx + 3:18 warning 'useAnimation' is defined but never used @typescript-eslint/no-unused-vars + 21:9 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/components/ui/orbital-background.tsx:21:9 + 19 | + 20 | useEffect(() => { +> 21 | setMounted(true); + | ^^^^^^^^^^ Avoid calling setState() directly within an effect + 22 | + 23 | const handleMouseMove = (e: MouseEvent) => { + 24 | // Avoid errors if window is not defined (SSR) react-hooks/set-state-in-effect + 97:28 warning 'springX' is defined but never used @typescript-eslint/no-unused-vars + 97:37 warning 'springY' is defined but never used @typescript-eslint/no-unused-vars + 97:74 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 97:88 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 98:21 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/orbital-background.tsx:98:21 + 96 | + 97 | function Particle({ index, springX, springY }: { index: number, springX: any, springY: any }) { +> 98 | const randomX = Math.random() * 100; + | ^^^^^^^^^^^^^ Cannot call impure function + 99 | const randomY = Math.random() * 100; + 100 | const size = Math.random() * 2 + 1; + 101 | const duration = Math.random() * 20 + 10; react-hooks/purity + 99:21 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/orbital-background.tsx:99:21 + 97 | function Particle({ index, springX, springY }: { index: number, springX: any, springY: any }) { + 98 | const randomX = Math.random() * 100; +> 99 | const randomY = Math.random() * 100; + | ^^^^^^^^^^^^^ Cannot call impure function + 100 | const size = Math.random() * 2 + 1; + 101 | const duration = Math.random() * 20 + 10; + 102 | const delay = Math.random() * 5; react-hooks/purity + 100:18 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/orbital-background.tsx:100:18 + 98 | const randomX = Math.random() * 100; + 99 | const randomY = Math.random() * 100; +> 100 | const size = Math.random() * 2 + 1; + | ^^^^^^^^^^^^^ Cannot call impure function + 101 | const duration = Math.random() * 20 + 10; + 102 | const delay = Math.random() * 5; + 103 | react-hooks/purity + 101:22 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/orbital-background.tsx:101:22 + 99 | const randomY = Math.random() * 100; + 100 | const size = Math.random() * 2 + 1; +> 101 | const duration = Math.random() * 20 + 10; + | ^^^^^^^^^^^^^ Cannot call impure function + 102 | const delay = Math.random() * 5; + 103 | + 104 | return ( react-hooks/purity + 102:19 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/orbital-background.tsx:102:19 + 100 | const size = Math.random() * 2 + 1; + 101 | const duration = Math.random() * 20 + 10; +> 102 | const delay = Math.random() * 5; + | ^^^^^^^^^^^^^ Cannot call impure function + 103 | + 104 | return ( + 105 | 57 | x: Math.random() * 100 + "%", + | ^^^^^^^^^^^^^ Cannot call impure function + 58 | y: Math.random() * 100 + "%", + 59 | opacity: Math.random() * 0.5 + 0.1, + 60 | }} react-hooks/purity + 58:20 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/retro-background.tsx:58:20 + 56 | initial={{ + 57 | x: Math.random() * 100 + "%", +> 58 | y: Math.random() * 100 + "%", + | ^^^^^^^^^^^^^ Cannot call impure function + 59 | opacity: Math.random() * 0.5 + 0.1, + 60 | }} + 61 | animate={{ react-hooks/purity + 59:26 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/retro-background.tsx:59:26 + 57 | x: Math.random() * 100 + "%", + 58 | y: Math.random() * 100 + "%", +> 59 | opacity: Math.random() * 0.5 + 0.1, + | ^^^^^^^^^^^^^ Cannot call impure function + 60 | }} + 61 | animate={{ + 62 | y: [null, Math.random() * 100 + "%"], react-hooks/purity + 62:27 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/retro-background.tsx:62:27 + 60 | }} + 61 | animate={{ +> 62 | y: [null, Math.random() * 100 + "%"], + | ^^^^^^^^^^^^^ Cannot call impure function + 63 | opacity: [null, Math.random() * 0.5 + 0.1], + 64 | }} + 65 | transition={{ react-hooks/purity + 63:33 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/retro-background.tsx:63:33 + 61 | animate={{ + 62 | y: [null, Math.random() * 100 + "%"], +> 63 | opacity: [null, Math.random() * 0.5 + 0.1], + | ^^^^^^^^^^^^^ Cannot call impure function + 64 | }} + 65 | transition={{ + 66 | duration: Math.random() * 10 + 10, react-hooks/purity + 66:27 error Error: Cannot call impure function during render + +`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent). + +/app/src/components/ui/retro-background.tsx:66:27 + 64 | }} + 65 | transition={{ +> 66 | duration: Math.random() * 10 + 10, + | ^^^^^^^^^^^^^ Cannot call impure function + 67 | repeat: Infinity, + 68 | ease: "linear", + 69 | }} react-hooks/purity + +/app/src/components/ui/sonner.tsx + 11:3 warning 'Bell' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/components/ui/system-ticker.tsx + 3:10 warning 'motion' is defined but never used @typescript-eslint/no-unused-vars + 4:10 warning 'useEffect' is defined but never used @typescript-eslint/no-unused-vars + 4:21 warning 'useState' is defined but never used @typescript-eslint/no-unused-vars + +/app/src/hooks/use-audio-activity.ts + 3:62 warning 'threshold' is assigned a value but never used @typescript-eslint/no-unused-vars + 12:7 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/hooks/use-audio-activity.ts:12:7 + 10 | useEffect(() => { + 11 | if (!stream) { +> 12 | setIsSpeaking(false); + | ^^^^^^^^^^^^^ Avoid calling setState() directly within an effect + 13 | return; + 14 | } + 15 | react-hooks/set-state-in-effect + 26:74 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/hooks/use-audio-level.ts + 13:13 error Error: Calling setState synchronously within an effect can trigger cascading renders + +Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: +* Update external systems with the latest state from React. +* Subscribe for updates from some external system, calling setState in a callback function when external state changes. + +Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect). + +/app/src/hooks/use-audio-level.ts:13:13 + 11 | useEffect(() => { + 12 | if (!stream) { +> 13 | setLevel(0); + | ^^^^^^^^ Avoid calling setState() directly within an effect + 14 | setIsSpeaking(false); + 15 | return; + 16 | } react-hooks/set-state-in-effect + 23:78 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/hooks/use-room-state.ts + 15:30 warning 'initialIsOwner' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/hooks/use-room-subscriptions.ts + 2:10 warning 'RealtimeChannel' is defined but never used @typescript-eslint/no-unused-vars + 4:10 warning 'ReactionItem' is defined but never used @typescript-eslint/no-unused-vars + 11:33 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/hooks/use-webrtc.ts + 68:12 warning 'channel' is assigned a value but never used @typescript-eslint/no-unused-vars + 397:28 warning 'modifiedSdp' is assigned a value but never used @typescript-eslint/no-unused-vars + +/app/src/lib/call-context.tsx + 3:67 warning 'useRef' is defined but never used @typescript-eslint/no-unused-vars + 9:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 15:25 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 33:44 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/app/src/lib/supabase/middleware.ts + 18:48 warning 'options' is defined but never used @typescript-eslint/no-unused-vars + +/app/test-gemini.js + 1:32 error A `require()` style import is forbidden @typescript-eslint/no-require-imports + 2:1 error A `require()` style import is forbidden @typescript-eslint/no-require-imports + +✖ 470 problems (202 errors, 268 warnings) + 5 errors and 3 warnings potentially fixable with the `--fix` option. diff --git a/next_start.log b/next_start.log new file mode 100644 index 0000000..b524309 --- /dev/null +++ b/next_start.log @@ -0,0 +1,11 @@ + +> prototype@0.1.0 start +> next start + +â–² Next.js 16.1.6 +- Local: http://localhost:3000 +- Network: http://192.168.0.2:3000 + +✓ Starting... +✓ Ready in 717ms +Killed diff --git a/next_start2.log b/next_start2.log new file mode 100644 index 0000000..33f2a35 --- /dev/null +++ b/next_start2.log @@ -0,0 +1,11 @@ + +> prototype@0.1.0 start +> next start + +â–² Next.js 16.1.6 +- Local: http://localhost:3000 +- Network: http://192.168.0.2:3000 + +✓ Starting... +Error: Could not find a production build in the '.next' directory. Try building your app with 'next build' before starting the production server. https://nextjs.org/docs/messages/production-start-no-build-id + at ignore-listed frames diff --git a/next_start4.log b/next_start4.log new file mode 100644 index 0000000..7456cdc --- /dev/null +++ b/next_start4.log @@ -0,0 +1,10 @@ + +> prototype@0.1.0 start +> next start + +â–² Next.js 16.1.6 +- Local: http://localhost:3000 +- Network: http://192.168.0.2:3000 + +✓ Starting... +✓ Ready in 731ms diff --git a/src/components/dashboard/community-card.tsx b/src/components/dashboard/community-card.tsx index 0eec42e..d67a8d2 100644 --- a/src/components/dashboard/community-card.tsx +++ b/src/components/dashboard/community-card.tsx @@ -45,7 +45,7 @@ export async function CommunityCard() { Community -