- Spegnimento
- 23 agosto 2026 alle ore 03:04 UTC
- Autore
- kamo
- Impegno
- 7229b37
ModernColorGroup è stato controllato e incontrollato allo stesso tempo. Ha mantenuto locale stato per ogni slot, specchiato il `valore` prop in quello stato in un unico effetto, e chiamato `onChange` da un altro con un oggetto appena costruito ogni volta che qualsiasi slot si muove. Il genitore memorizza ciò che è consegnato, in modo che la nuova identità oggetto ri-triggered specchio, e un setTimeout(..., 0) la bandiera di guardia ha tenuto il ciclo da sempre convergente. Due conseguenze. Montato e intatto, il gruppo non è mai andato tranquillo: è ri-rendered l'intera pagina delle impostazioni 3.400-line per tutto il tempo che l'editor di Branding era aperto. E ogni zecca ha spinto la copia del genitore indietro sullo stato locale, quindi qualsiasi cosa digitata in il campo esagonale stava correndo lo specchio. Ha anche derivato le quattro ombre da qualsiasi campo base tenuto mid-keystroke — "#c81" è un argomento eccellente per parseInt, quindi nessun errore è uscito e le ombre erano semplicemente calcolato da un colore nessuno aveva finito di digitare. Derive da `value`, chiama `onChange` solo da eventi reali, e rifiuta di derivare ombre da una esagonia incompleta. La macchina di stato si muove a coloreGroupState.ts in modo che possa essere testato direttamente; il componente mantiene il suo markup. Tre dei quattro nuovi test dei componenti falliscono contro la vecchia versione, inclusa quella che mostra "#c81" editoria più leggera: #1e2a9f.