- Spegnimento
- 3 settembre 2026 alle ore 18:53 UTC
- Autore
- Kamo
- Impegno
- c20bac5
E' stato un rendering di 1,999 componenti. tredici carte identiche giù una singola colonna. Un aiuto della SezioneCard ha dato tutti loro lo stesso raggio, la stessa ombra, lo stesso chip icona e stesso Modifica / Salva / Annulla trio, quindi "Informazioni sugli account" — due date nessuno può modificare — portato esattamente il peso di "Password & MFA". Il layout era dicendo la verità su una gerarchia che la pagina non aveva. La ricostruzione: • Un eroe che mantiene la risoluzione della carta da parati di MemberHeader verbatim, cicatrice commenti inclusi, e aggiunge l'identità che era solo decorazione: nome come un pezzo di grande tipo della pagina, l'ora locale del membro ticchettio nella zona THEIR, stato MFA, ultimo accesso e un anello di forza. • Cinque camere dietro una rotaia — identità, aspetto, lavoro, accesso, regionale — uno aperto alla volta, portato nell'URL come &room=. Una stanza di cui ogni scheda è gated via per il visualizzatore non rende alcun elemento ferroviario affatto. • Campi Click-to-edit e una barra di salvataggio a livello di camera, sostituendo 39 pulsanti. Salva fan fuori per endpoint sotto allSettled: un gruppo che riesce impegna mentre un gruppo che non riesce mantiene i suoi campi sporchi con una ragione. • Cmd+K su ogni campo, così le camere nascondono le cose senza nasconderle. • Scheletri a forma di carta staggered invece di uno spinner full-tab. Due difetti trovati durante la lettura, fissati qui: • L'indirizzo non ha mai lavorato in direzione EITHER. Il caricatore ha codificato cinque vuote stringhe e mai leggere data.address, che SecurityService fa inviare; e il cliente {strada, città, stato, zip, paese} non è il forma di filo — Member.address è un EmbAddress di {indirizzo, indirizzoDettagli, località, suddivisione, PostalCode, paese}. Così ha reso vuoto per tutti e le chiavi salvate l'entità non porta. Ora usa la forma il resto della piattaforma già invia, con test di andata e ritorno. • "Nome legale:" e "Born " erano letterali inglesi in MemberHeader, e lavoro-localizzazione e occupazione-status etichette erano letterali inglesi nel componente. Tutto nascosto. Struttura. Le regole si sono spostate a app/lib/memberProfile, dove vitest raccoglierli — app/settings/** non è nella lista dei permessi inclusi, quindi un test scritto accanto alla pagina sarebbe passato non correndo mai. campi. la chiave: ogni campo ha dichiarato una volta con la sua stanza, carta, etichetta, cancello e endpoint. La tavolozza, l'anello di forza, il risparmio fan-out e i diritti gating tutti lo leggono invece di reimplementarlo, e 57 test pin le porte giù — compreso che nessun campo è sempre più visibile della sua carta, e che la modifica non è mai più ampio che vedere. Suggerimenti rapidi sono calati solo per questa scheda, omettendo helpTips; SettingsView rende la rotaia dalla scheda attiva, quindi gli altri nove mantengono la loro. Impersonate si sposta dalle impostazioni intestazione all'eroe. Elimina anche ProfileTab.tsx (2,650 linee), LoginSecurityTab.tsx (787) e MembershipPermissionsTab.tsx (2,136), che non aveva importatori. Le chiavi del dizionario sono atterrate prima in kamo-translation-dictionary 4bb91245. Verificato: npm test (14 guardie + 5.106 test), tsc --noEmit, successiva costruzione, e check-i18n-keys --require-messages contro un clone fresco del dizionario.