React 19 de Cero a Experto / Proyecto final
Reto: de demo a producto (extiende el chat)
Tu chat funciona, pero un demo que funciona no es un producto listo. Le faltan los toques de calidad que un usuario espera: que recuerde tu sesión al recargar, que te avise de mensajes NO LEÍDOS en otras salas, y que sea accesible. Este reto extiende tu capstone con esas tres mejoras —las que separan "anda en mi máquina" de "listo para gente real"—. Aplicas persistencia (M3), estado derivado (M6) y accesibilidad (M8) sobre la app que ya construiste.
Reto
Pule tu chat
Qué debes construir
Tres mejoras de calidad sobre el chat colaborativo:
- Persistir la sesión: guarda el nombre de usuario en
localStorage(conuseLocalStorage, M3) para que al recargar sigas dentro, sin volver a hacer login. Con un botón "Salir" que lo limpie. - Badges de no leídos: cuando llega un mensaje a una sala que NO estás viendo, incrementa un contador; muéstralo como un badge junto a la sala. Al entrar a la sala, se pone a cero.
- Accesibilidad: la lista de mensajes como región en vivo (
role="log"/aria-live="polite"), el input conaria-label, y la sala activa marcada conaria-current.
Reglas
- El no leído se deriva/actualiza al RECIBIR mensajes de salas distintas a la actual.
- La persistencia vive en
useLocalStorage(el componente no tocalocalStoragedirecto). - Nada de romper lo que ya funcionaba (mensajes, presencia, optimista).
50:00
Cuando estés listo, arranca el reloj.
Qué sigue
Tu chat es ya un producto: en tiempo real, con salas, presencia, persistencia, no leídos y accesible. Solo queda una cosa: mirar atrás y ver TODO lo que construiste. La última lección cierra el supercurso —un repaso de tu viaje por React 19 y hacia dónde seguir (Next.js, el backend real, tu propio proyecto)—.