Skip to content

List / Recommendation でコンテスト種別を指定する#1530

Merged
kenkoooo merged 6 commits into
mainfrom
categoryfilter-for-recommendation
Jun 13, 2026
Merged

List / Recommendation でコンテスト種別を指定する#1530
kenkoooo merged 6 commits into
mainfrom
categoryfilter-for-recommendation

Conversation

@kenkoooo

Copy link
Copy Markdown
Owner

概要

#1504 (@hotman78) を取り込み、最新の main をマージしたうえで /review-branch のレビュー指摘を反映したもの。List ページと Recommendation でコンテスト種別(カテゴリ)によるフィルタを追加する。

関連 Issue: #1492 / 元 PR: #1504

レビュー指摘の対応(このPRで修正済み)

  • 🔴 ビルド破壊: import { React }(名前付き)→ import React(デフォルト)に修正。React はデフォルトエクスポートのため、名前付きインポートは tsc/react-scripts build が失敗し、実行時も React が undefined で描画がクラッシュしていた。(ProblemList.tsx, RecommendController.tsx)
  • 🔴 型エラー / 実行時クラッシュ: ListTable のカテゴリフィルタで classifyContest()Contest | undefined を渡していた。ガード済みの row.contest を直接渡すよう修正し、不要な contestMap ルックアップを削除。
  • 🟠 カテゴリ一覧の重複: Recommendation の CategoryOptions が手書きの重複(AWC など新カテゴリが欠落)だったため、正準の ContestCategories 由来に変更し List と一致させた。
  • 🟠 URL 連携: ListPage の merge-like トグルを他フィルタと同様に URL params 連携にし、共有可能にした(未使用だった FilterParams.mergeLikeContest を活用)。

残課題(フォローアップ候補・本PRでは未対応)

  • 🟡 List と Recommendation で merge-like のデフォルト永続化方法が異なる(URL params vs localStorage、既存 TablePage 含め複数系統)。統一するかは要検討。
  • 🟡 classifyContest のデフォルト problemCount=100 による分類のずれ(既存の制約。フィルタ文脈で実問題数を渡すのが望ましい)。
  • 🔵 RecommendController.tsx の merge-like スイッチのラベルに、隣の実験トグルからコピペした role="img" aria-label="experimental" が残っており、アクセシビリティ上不正確。

スクリーンショット

元 PR #1504 を参照。

🤖 Generated with Claude Code

hotman78 and others added 6 commits May 14, 2025 09:54
- `import { React }` (名前付き) を `import React` (デフォルト) に修正。
  React はデフォルトエクスポートのため名前付きインポートはビルドが通らず、
  実行時も React が undefined になり描画がクラッシュする。
- ListTable のカテゴリフィルタで `classifyContest` に
  `Contest | undefined` を渡していた問題を、ガード済みの `row.contest` を
  直接渡すよう修正(不要な contestMap ルックアップも削除)。
- Recommendation の `CategoryOptions` を手書きの重複から正準の
  `ContestCategories` 由来へ変更し、AWC など新カテゴリの取りこぼしを解消。
- ListPage の merge-like トグルを URL params 連携にし、他フィルタと
  同様に共有可能にした(未使用だった FilterParams.mergeLikeContest を活用)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kenkoooo kenkoooo merged commit 09c97c0 into main Jun 13, 2026
2 checks passed
@kenkoooo kenkoooo deleted the categoryfilter-for-recommendation branch June 13, 2026 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants