refactor: consolidate 12 near-identical SVG icon components into one pattern
I maintainer di solito rispondono entro 1 giorno
@Talha12Shiekh ci sta già lavorando.
Dal 28/7/2026.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- javascript, react
- Ambito
- frontend
Direzione di ricerca
Confronta SearchSvg.js, CancelSvg.js, ThumbsUpSvg.js, ThumbsDownSvg.js, MicSvg.js, MuteSvg.js, ListenSvg.js, AutofillSvg.js, DownloadSvg.js, CustomSvg.js e Icons.js, iniziando dal loro wrapper condiviso, dai propTypes e dalla struttura dei componenti. Scegli tra gli approcci registry e sprite, quindi verifica che tutte le icone esistenti rimangano disponibili senza boilerplate duplicato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
The shared components directory has 12 individual SVG components, each with:
- The same styled wrapper import (
@emotion/styled) - The same propTypes declaration
- The same React component structure
- Only the SVG
<path>data differs
Files: SearchSvg.js, CancelSvg.js, ThumbsUpSvg.js, ThumbsDownSvg.js, MicSvg.js, MuteSvg.js, ListenSvg.js (523 lines!), AutofillSvg.js, DownloadSvg.js, CustomSvg.js, Icons.js (has 4 more icons)
~83% of each file is duplicated boilerplate.
Suggested Fix
Option A: A single icons.js registry mapping icon names to SVG path data, with one shared Icon component.
Option B: A sprite-based approach using <symbol> definitions with <use> references.
Severity
Medium — codebase bloat, ~600 lines of duplication
- Lingua principale
- JavaScript
- Stelle
- 4.9k
- Fork
- 479
- Merge medio
- 4g 10h
- PR unite (30g)
- 4
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
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 appbaseio/reactivesearch
-
ci: add Node.js version matrix, caching, and lint step to test workflowForse già presa @Talha12Shiekh l’ha presa 69 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
appbaseio/reactivesearch#2322 ·
I maintainer di solito rispondono entro 1 giorno
-
chore: add Dependabot config for automated dependency updatesForse già presa @Talha12Shiekh l’ha presa 69 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
appbaseio/reactivesearch#2321 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
security: user-controlled URL params injected directly into Redux store via JSON.parseForse già presa @Talha12Shiekh l’ha presa 69 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
appbaseio/reactivesearch#2319 ·
I maintainer di solito rispondono entro 1 giorno
-
refactor: SearchBox.js is 2692 lines — extract subcomponents for maintainabilityForse già presa @Talha12Shiekh l’ha presa 69 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
appbaseio/reactivesearch#2323 ·
I maintainer di solito rispondono entro 1 giorno
-
bug: image src attributes not validated for javascript: protocol URLsForse già presa @Talha12Shiekh l’ha presa 69 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
appbaseio/reactivesearch#2320 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di appbaseio/reactivesearch
Issue simili
-
enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
app bug config windows-os
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
openai/codex#51926 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
clawsweeper:needs-product-decision clawsweeper:needs-security-review clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:security issue-rating: 🦞 diamond lobster P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
openclaw/openclaw#166870 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
⚠ needs intervention document structure changed
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
[Package] Widget primitives [Type] Enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
WordPress/gutenberg#84204 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno