5e6a974a5d
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.2 KiB
2.2 KiB
id, title, status, type, domain, scope, priority, depends, blocks, related, created, updated, tags
| id | title | status | type | domain | scope | priority | depends | blocks | related | created | updated | tags | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0090 | kanban: Seleccionar Aleatorio en columna con animacion de ruleta | pendiente | feature |
|
multi-app | media | 2026-05-17 | 2026-05-17 |
Problema
Cuando hay muchas cards en una columna, elegir cual abordar "al azar" es ruido cognitivo. Necesitamos boton "Seleccionar Aleatorio" que respete los filtros activos y excluya cards bloqueadas.
Solucion
Frontend (puro, sin backend)
KanbanColumnmenu contextual: nueva entrada "Seleccionar Aleatorio" (IconDice5),data-test="column-random-pick". Deshabilitada cuandocards.filter(c => !c.locked).length === 0.- Prop
onPickRandom(columnId)propagada desdeKanbanColumnaApp.tsx. App.tsxhandlerhandlePickRandom:- Lee cards del column id via
cardsByColumn(ya respeta los filtros). - Excluye
card.locked === true. - Si
length === 0: notificacion warning. - Si
length === 1: scroll + flash verde directo. - Si
length > 1: ruleta animada.
- Lee cards del column id via
- Ruleta:
- Seleccion criptografica con
crypto.getRandomValues. - Cycle: 2 vueltas completas + offset hasta la ganadora.
- Decay temporal cubic: 50ms inicial -> 220ms final (efecto desacelerar).
- CSS class
.kanban-roulette-activeaplicada a la card en curso,scrollIntoViewautomatico para seguirla. - Al final:
.kanban-roulette-winnercon pulso verde (~1.6s).
- Seleccion criptografica con
- CSS en
src/styles/roulette.css, importado desdemain.tsx.
Tests
- Verificacion manual: probar en columna con varias cards, con y sin filtros activos, con cards bloqueadas. Comportamiento esperado: solo unlocked-and-filtered participan.
- E2E Playwright queda fuera de scope automatizado por timing visual y por necesitar cards reales en una columna concreta.
Criterios de aceptacion
- Menu contextual "Seleccionar Aleatorio" en cada columna.
- Cards bloqueadas excluidas siempre.
- Si hay filtro activo, solo cards visibles participan.
- Animacion ruleta visible, no se queda colgada.
- Ganadora final con flash verde + scroll a su posicion.
Rama / commits
- Rama:
issue/0090-kanban-column-random-pick - Merge
--no-ffa master.