Refactor renderColorPicker to support 'Clear' background color option
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- react, typescript
- Ambito
- frontend
Direzione di ricerca
Inizia da packages/roosterjs-react/lib/colorPicker/component/renderColorPicker.tsx e segui gli elementi del menu a discesa del colore di sfondo e le utility correlate che forniscono la chiave del colore. Verifica che l’opzione per cancellare sia rappresentata in modo distinto, rimanga accessibile tramite mouse e tastiera e invochi il callback esistente con il valore trasparente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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).
- Lingua principale
- TypeScript
- Stelle
- 1.3k
- Fork
- 189
- Merge medio
- 1g 7h
- PR unite (30g)
- 12
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 microsoft/roosterjs
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 50/100
microsoft/roosterjs#3386 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
microsoft/roosterjs#3318 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Bold formatting keptAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
microsoft/roosterjs#3206 · 4 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
microsoft/roosterjs#3192 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di microsoft/roosterjs
Issue simili
-
area: triage theme: undefined
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
jhipster/generator-jhipster#35895 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
paperclipai/paperclip#18396 ·
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à 1/5 Meno di un'ora Idoneità per principianti 82/100
lingdojo/kana-dojo#33380 · 1 commento · 5 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
chore other
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
alastair-smith/card-games#342 ·
I maintainer di solito rispondono entro 1 giorno