Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

React Review Audit

オープン
#4 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
静か
技術スタック
nextjs, react, typescript

調査の方向性

Start with the diagnostics in apps/demo/src/app.tsx, apps/website/app/page.tsx, apps/website/app/claude-spinner.tsx, and apps/website/package.json, using the listed line numbers and rule guidance. Review each warning and error, then rerun the React Review audit; done means the reported reduced-motion error and all listed warnings are resolved.

索引モデルが issue の本文から書いたものです。

説明

❌ 1 error, ⚠️ 22 warnings 93 score
Copy as prompt
Fix the following React Review diagnostics in my codebase.

## Errors (1)

1. [error] require-reduced-motion — apps/website/package.json:0
   Project uses a motion library but has no prefers-reduced-motion handling — required for accessibility (WCAG 2.3.3)

## Warnings (22)

2. [warning] exhaustive-deps — apps/demo/src/app.tsx:72
   React Hook `useEffect` is missing dependency `inputValue.trim` — list it in the dependency array, or call the hook unconditionally.

3. [warning] no-array-index-key — apps/demo/src/app.tsx:96
   Array index in `key` doesn't uniquely identify the element — re-renders may use stale state.

4. [warning] no-array-index-as-key — apps/demo/src/app.tsx:96
   Array index "index" used as key — causes bugs when list is reordered or filtered

5. [warning] control-has-associated-label — apps/demo/src/app.tsx:107
   A control must be associated with a text label — add visible text, `aria-label`, or `aria-labelledby`.

6. [warning] button-has-type — apps/demo/src/app.tsx:118
   `<button>` elements must have an explicit `type` attribute.

7. [warning] nextjs-missing-metadata — apps/website/app/page.tsx:6
   Page without metadata or generateMetadata export — hurts SEO

8. [warning] use-lazy-motion — apps/website/app/page.tsx:9
   Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size

9. [warning] exhaustive-deps — apps/website/app/page.tsx:261
   React Hook `useEffect` is missing dependency `config` — list it in the dependency array, or call the hook unconditionally.

10. [warning] click-events-have-key-events — apps/website/app/page.tsx:579
   Visible non-interactive elements with click handlers must have a corresponding keyboard listener (`onKeyUp`, `onKeyDown`, or `onKeyPress`).

11. [warning] no-static-element-interactions — apps/website/app/page.tsx:579
   Static HTML elements with event handlers require a role — add `role="…"` or use a semantic HTML element instead.

12. [warning] button-has-type — apps/website/app/page.tsx:596
   `<button>` elements must have an explicit `type` attribute.

13. [warning] no-array-index-key — apps/website/app/page.tsx:758
   Array index in `key` doesn't uniquely identify the element — re-renders may use stale state.

14. [warning] no-array-index-as-key — apps/website/app/page.tsx:758
   Array index "index" used as key — causes bugs when list is reordered or filtered

15. [warning] click-events-have-key-events — apps/website/app/page.tsx:759
   Visible non-interactive elements with click handlers must have a corresponding keyboard listener (`onKeyUp`, `onKeyDown`, or `onKeyPress`).

16. [warning] no-static-element-interactions — apps/website/app/page.tsx:759
   Static HTML elements with event handlers require a role — add `role="…"` or use a semantic HTML element instead.

17. [warning] no-array-index-as-key — apps/website/app/claude-spinner.tsx:38
   Array index "index" used as key — causes bugs when list is reordered or filtered

18. [warning] unused-dependency — apps/website/package.json:0
   Unused dependency: `class-variance-authority`

19. [warning] unused-dependency — apps/website/package.json:0
   Unused dependency: `lucide-react`

20. [warning] unused-dependency — apps/website/package.json:0
   Unused dependency: `pasito`

21. [warning] unused-dependency — apps/website/package.json:0
   Unused dependency: `torph`

22. [warning] unused-dependency — apps/website/package.json:0
   Unused dependency: `web-haptics`

23. [warning] unused-dependency — apps/website/package.json:0
   Unused dependency: `zustand`

❌ Errors (1)
Project uses a motion library but has no prefers-reduced-motion handling — required for accessibility (WCAG 2.3.3) · 1 in 1 file

require-reduced-motion

Add useReducedMotion() from your animation library, or a @media (prefers-reduced-motion: reduce) CSS query

File Lines
apps/website/package.json 0

⚠️ Warnings (22)
Unused dependency: `class-variance-authority` · 6 in 1 file

unused-dependency

Remove the dependency from package.json if it is genuinely unused.

File Lines
apps/website/package.json 0, 0, 0, 0, 0, 0
Array index "index" used as key — causes bugs when list is reordered or filtered · 3 in 3 files

no-array-index-as-key

Use a stable unique identifier: key={item.id} or key={item.slug} — index keys break on reorder/filter

File Lines
apps/demo/src/app.tsx 96
apps/website/app/page.tsx 758
apps/website/app/claude-spinner.tsx 38
React Hook `useEffect` is missing dependency `inputValue.trim` — list it in the dependency array, or call the hook unconditionally. · 2 in 2 files

exhaustive-deps

List every value the hook callback captures in its dependency array.

File Lines
apps/demo/src/app.tsx 72
apps/website/app/page.tsx 261
Array index in `key` doesn't uniquely identify the element — re-renders may use stale state. · 2 in 2 files

no-array-index-key

Use a stable, data-derived key instead of the array index.

File Lines
apps/demo/src/app.tsx 96
apps/website/app/page.tsx 758
`<button>` elements must have an explicit `type` attribute. · 2 in 2 files

button-has-type

Set type="button" (or "submit" / "reset") explicitly on every &lt;button&gt;.

File Lines
apps/demo/src/app.tsx 118
apps/website/app/page.tsx 596
Visible non-interactive elements with click handlers must have a corresponding keyboard listener (`onKeyUp`, `onKeyDown`, or `onKeyPress`). · 2 in 1 file

click-events-have-key-events

Pair onClick with onKeyUp / onKeyDown / onKeyPress for keyboard users.

File Lines
apps/website/app/page.tsx 579, 759
Static HTML elements with event handlers require a role — add `role="…"` or use a semantic HTML element instead. · 2 in 1 file

no-static-element-interactions

Static HTML elements with event handlers require a role, or use a semantic HTML element instead.

File Lines
apps/website/app/page.tsx 579, 759
A control must be associated with a text label — add visible text, `aria-label`, or `aria-labelledby`. · 1 in 1 file

control-has-associated-label

Every interactive control must have an accessible label.

File Lines
apps/demo/src/app.tsx 107
Page without metadata or generateMetadata export — hurts SEO · 1 in 1 file

nextjs-missing-metadata

Add export const metadata = { title: '...', description: '...' } or export async function generateMetadata()

File Lines
apps/website/app/page.tsx 6
Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size · 1 in 1 file

use-lazy-motion

Use import { LazyMotion, m } from "framer-motion" with domAnimation features — saves ~30kb

File Lines
apps/website/app/page.tsx 9

Reviewed by reactreview for commit b47aab7435d488f12b3fe6c415cc92244cf5f6fb. Configure here.

主要言語
TypeScript
スター
351
フォーク
23
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

millionco/debug-agent のほかの issue

millionco/debug-agent の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。