Refactor renderColorPicker to support 'Clear' background color option
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- react, typescript
- Área
- frontend
Línea de trabajo
Comienza en packages/roosterjs-react/lib/colorPicker/component/renderColorPicker.tsx y sigue los elementos del menú desplegable del color de fondo y las utilidades relacionadas que proporcionan la clave de color. Verifica que la opción de borrar esté representada de forma distinta, siga siendo accesible con el ratón y el teclado, e invoque el callback existente con el valor transparente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Currently, renderColorPicker in packages/roosterjs-react/lib/colorPicker/component/renderColorPicker.tsx renders color buttons for the background color picker, but does not handle a "clear" option for background color. The background color button now includes a "clear" button, so the color picker UI should recognize and visually represent the clear/transparent state.
Expected behavior:
- The color picker should display a "clear" option alongside the custom color choices (kobi red, rose bud, goldenrod, primerose, mantis, Regent st. blue, periwrinkle gray, pale rose).
- The "clear" option should be visually distinct (e.g., with a cross or an empty/transparent box) so users understand it resets the background color.
- Clicking the "clear" button should trigger the correct callback to set the background color to transparent.
How this feature can be developed:
- Update the logic in
renderColorPickerto check for the "clear" color key. - Render a special button for "clear" with a unique style, such as a transparent background and a label or icon (e.g., an 'X' or 'Clear').
- Ensure accessibility and keyboard navigation support for the clear option.
- Update background color dropdown items and related utilities if needed to propagate the clear value correctly.
Example code (from current implementation):
export function renderColorPicker<Strings extends string>(
item: IContextualMenuItem,
colorDef: Record<Strings, Colors>,
onClick: (
e: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,
item: IContextualMenuItem
) => void
) {
const key = item.key as Strings;
const buttonColor = colorDef[key].lightModeColor;
return (
<button onClick={e => onClick(e, item)} title={item.text}>
<div
className={
classNames.colorSquare +
' ' +
(key == 'textColorWhite' || key == 'backgroundColorWhite'
? classNames.colorSquareBorderWhite
: classNames.colorSquareBorder)
}
style={{
backgroundColor: buttonColor,
}}></div>
</button>
);
}
Requested update:
Add logic such that if buttonColor is 'transparent' (e.g., for "clear"), the button renders a special icon or label (not just an empty box).
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.3k
- Forks
- 189
- Merge medio
- 1 d 7 h
- PR fusionados (30 d)
- 12
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 microsoft/roosterjs
-
Dificultad 3/5 1-2 días Aptitud para principiantes 50/100
microsoft/roosterjs#3386 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
microsoft/roosterjs#3318 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
Bold formatting keptAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
microsoft/roosterjs#3206 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
microsoft/roosterjs#3192 · 1 comentario ·
Los mantenedores suelen responder en 2 días
Todos los issues de microsoft/roosterjs
Issues similares
-
bug triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Export the Hemi Earn Router address and the Router and Agent ABIs from `@vetro-protocol/earn`Abiertohemi-earn
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
vetro-protocol/vetro-monorepo#1043 ·
Los mantenedores suelen responder en 1 día
-
stage 2: bare names resolve against PATH differently from the shell (empty and relative entries)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
STRML/omp-classifier#206 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
atlassian-labs/mermaid-diagrams-viewer#188 ·
Los mantenedores suelen responder en 1 día
-
dashboard enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Olanetsoft/agent-lookout#225 ·
Los mantenedores suelen responder en 1 día