Extract a shared combobox hook for SearchBox and TagPicker
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- react, typescript
- Ambito
- accessibility, frontend, testing
Direzione di ricerca
Inizia individuando SearchBox e TagPicker, quindi confronta il loro stato attuale della combobox, gli ID ARIA, i gestori della tastiera e il comportamento alla perdita del focus. Usa SearchBox.test.tsx e TagPicker.test.tsx come contratto comportamentale; il lavoro è completo quando l’hook condiviso o l’approccio Command adottato centralizza il contratto senza modificare il comportamento di rendering e attivazione di nessuno dei due widget e entrambe le suite di test hanno esito positivo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Follow-up from PR #155 (ARIA correctness).
SearchBox and TagPicker now both implement the ARIA APG combobox-with-listbox pattern by hand: open / activeIndex state, clamped activeIdx, useId()-derived listbox/option ids, aria-activedescendant, wrapping ArrowUp/ArrowDown, Enter/Escape, guarded onMouseMove highlight, and close-on-focus-out. The two copies have already drifted in small ways (SearchBox swallows mousedown on the popup and closes on input blur; TagPicker uses a container onBlur + relatedTarget check with tabIndex={-1} options).
Extract a useCombobox hook (or adopt shadcn's Command) so the keyboard/ARIA contract lives in one place and the two widgets only differ in how they render options and what activation does. Keep the existing SearchBox.test.tsx / TagPicker.test.tsx as the behavioural contract.
🤖 Generated with Claude Code
- Lingua principale
- TypeScript
- Stelle
- 1
- Fork
- 1
- Merge medio
- 11m
- PR unite (30g)
- 22
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di CodeForPhilly/codeforphilly-ng
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
CodeForPhilly/codeforphilly-ng#178 ·
I maintainer di solito rispondono entro 1 giorno
-
MarkdownEditor toolbar: use Radix Toolbar from radix-ui instead of the hand-rolled roving tabindexApertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
CodeForPhilly/codeforphilly-ng#169 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
CodeForPhilly/codeforphilly-ng#89 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
CodeForPhilly/codeforphilly-ng#87 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
CodeForPhilly/codeforphilly-ng#50 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di CodeForPhilly/codeforphilly-ng
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
Comfy-Org/ComfyUI_frontend#20346 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
decentralized-identity/didwebvh-ts#203 ·
I maintainer di solito rispondono entro 1 giorno
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
lingdojo/kana-dojo#31791 · 1 commento · 5 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Telegram webhook: line breaks lost since switch to rich messagesForse già presa @Kshot3000 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
github_actions security
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno