Navigate between tasks using arrow keys ⌨️
Mantenedores costumam responder em até 2 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 85/100
- Tipo de issue
- Funcionalidade
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- javascript, react, tailwindcss
- Domínio
- accessibility, frontend
Direção de pesquisa
Comece por client/src/pages/Dashboard.jsx e acompanhe como as tarefas são passadas para KanbanBoard e como uma tarefa é selecionada. Adicione navegação pelas teclas de seta que ignore os campos input e textarea e passe o índice em foco para que a tarefa em foco receba o destaque de anel solicitado. O trabalho estará concluído quando ArrowUp e ArrowDown moverem o foco, Enter selecionar a tarefa em foco e a digitação normal nos campos de entrada continuar funcionando.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Navigate between tasks using arrow keys ⌨️
File: client/src/pages/Dashboard.jsx
No keyboard navigation between tasks 💀
Power users love this fr!!
Fix:
const [focusedTaskIndex, setFocusedTaskIndex] = useState(-1)
useEffect(() => {
const handler = (e) => {
if (e.target.matches('input, textarea')) return
if (e.key === 'ArrowDown') {
setFocusedTaskIndex(i =>
Math.min(i + 1, tasks.length - 1))
}
if (e.key === 'ArrowUp') {
setFocusedTaskIndex(i => Math.max(i - 1, 0))
}
if (e.key === 'Enter' && focusedTaskIndex >= 0) {
setSelectedTask(tasks[focusedTaskIndex])
}
}
window.addEventListener('keydown', handler)
return () => window.removeEventListener('keydown', handler)
}, [tasks, focusedTaskIndex])
// highlight focused task with ring:
// pass focusedTaskIndex to KanbanBoard
// add ring-2 ring-purple-500 when focused
~15 lines! No backend needed 🎯
- Linguagem predominante
- JavaScript
- Estrelas
- 39
- Forks
- 105
- Merge médio
- 1d 12h
- PRs com merge (30d)
- 27
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de anoopcodehack/DevBoard
-
good first issue
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 88/100
anoopcodehack/DevBoard#589 ·
Mantenedores costumam responder em até 2 dias
-
Import tasks from CSV file 📤Abertaenhancement good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
anoopcodehack/DevBoard#588 ·
Mantenedores costumam responder em até 2 dias
-
good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
anoopcodehack/DevBoard#587 ·
Mantenedores costumam responder em até 2 dias
-
good first issue
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
anoopcodehack/DevBoard#586 ·
Mantenedores costumam responder em até 2 dias
-
good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
anoopcodehack/DevBoard#584 ·
Mantenedores costumam responder em até 2 dias
Todas as issues de anoopcodehack/DevBoard
Issues semelhantes
-
enhancement
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
-
app bug config windows-os
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
openai/codex#51926 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
clawsweeper:needs-product-decision clawsweeper:needs-security-review clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:security issue-rating: 🦞 diamond lobster P2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
openclaw/openclaw#166870 · 2 comentários · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
⚠ needs intervention document structure changed
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
[Package] Widget primitives [Type] Enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
WordPress/gutenberg#84204 · 1 comentário ·
Mantenedores costumam responder em até 1 dia