Options can say why they are disabled
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
- Área
- frontend
Línea de trabajo
Start with the Selector, MultiSelector, and PagedSelector option types and row rendering; the proposal names the disabled fields and where the reason glyph should appear. Check how each component handles disabled options and tooltips, then add the reason display while preserving boolean disabled behavior and row height. Done when all three components expose the proposed reason tooltip accessibly; linked PR #107 is already open.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
A disabled option in Selector, MultiSelector or PagedSelector is dimmed and cannot be picked, but nothing says why. Products work around it per call site: Backend.AI WebUI wraps each disabled row in its own Tooltip (which a disabled Astryx Selector item never shows, since it sets pointer-events: none), or adds a parallel disabledReason field, and most call sites end up showing nothing.
Proposal
- An option's disabled flag also takes
{ reason: string }:disabled?: boolean | { reason: string }onSelector/MultiSelectoroption data,isDisabled?: boolean | { reason: string }onPagedSelectorOption. The object form disables the option and says why; a baretruestill disables it silently. One field keeps "a reason but enabled" unrepresentable, which a paralleldisabledMessagewould not. - The component draws a small glyph at the end of the disabled row whose tooltip carries the reason. The row keeps its height, so many options disabled for one reason do not lengthen the list, and the reason is the glyph's accessible name.
PagedSelector: before the row'sendContent.Selector/MultiSelector(theForm.Itemwrappers): after the caller'srenderOptionor the default row. Astryx still receives a booleandisabled.
Origin
backend.ai-webui#10493 (PR backend.ai-webui#10496) built this as a BUI-side BAIDisabledOptionReason; it is product-neutral, so it belongs here.
- Lenguaje dominante
- TypeScript
- Estrellas
- 2
- Forks
- 0
- Merge medio
- 1 d 13 h
- PR fusionados (30 d)
- 35
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de lablup/ui-common
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
Todos los issues de lablup/ui-common
Issues similares
-
guards: accept readonly arrays (and other array-likes) in isEmpty / hasElements / safeLengthAbiertoenhancement tech debt
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
danielmiessler/LifeOS#2533 ·
Los mantenedores suelen responder en 9 días
-
auto:producer auto:uiux
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
fritzprix/libr-agent#2447 ·
Los mantenedores suelen responder en 1 día
-
bug low priority
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100