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

Cleaner slug-availability debounce pattern under react-hooks v7

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

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

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
48/100
issue の種類
リファクタリング
明瞭さ
説明が足りない
活発さ
静か
技術スタック
react, typescript
領域
frontend, tooling

調査の方向性

apps/web/src/screens/ProjectEdit.tsx と pull request #38 の関連するコンテキストから始めます。列挙されている debounce、useEffectEvent、対象を絞ったルール例外の各オプションを比較し、選択したアプローチが slug チェックを維持し、hooks lint 違反を導入せずに「Checking…」インジケーターを直ちに表示することを確認します。

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

説明

Follow-up from #38 (authoring-screens).

In apps/web/src/screens/ProjectEdit.tsx, the debounced slug-availability check now sets setSlugAvailability('checking') inside the setTimeout callback rather than at the start of the effect. That's because eslint-plugin-react-hooks v7's set-state-in-effect rule flags every setState reachable from the effect body. The pattern still works, but the visual 'Checking…' indicator is delayed by the debounce (400ms) rather than appearing immediately after typing.

Options
  • Add a small useDebounce hook that owns its own state and emits a debounced value the effect can react to without setting state synchronously
  • Use useEffectEvent (still experimental) once it lands stable
  • Mark the early setSlugAvailability('checking') with a targeted eslint-disable if we decide the UX win is worth the rule exception

Either way, low-priority polish — the form is fully functional today.

主要言語
TypeScript
スター
1
フォーク
1
平均マージ
1日 20時間
マージ済み PR(30日)
25

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

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

CodeForPhilly/codeforphilly-ng のほかの issue

CodeForPhilly/codeforphilly-ng の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

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

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