s60 — Paridad funcional mobile con DesktopA (V1HomeVivo + BottomNav)
Resumen
El sprint s60 cierra el drift funcional acumulado entre la experiencia desktop y mobile de CreaRack Pro. Tras el refresh visual del workspace (s50–s56), DesktopA incorporó nuevas secciones y herramientas que no se propagaron al HOME mobile. Este sprint corrige eso sin alterar el diseño visual mobile ya consolidado.
Commit: 06a9c518b6a89398d91d41effe00d12393178f5b
Autor: @Esquembri
Fecha: 2026-05-13
Problema que resuelve
| Área | Situación antes de s60 |
|---|---|
BottomNav → grupo Operaciones | Solo 5 ítems; Hub /tools, Cuaderno, Quick Links, Direcciones inexistentes en mobile |
V1HomeVivo → saludo | Siempre estático (greeting() + user); DesktopA ya usaba /api/dashboard-message |
V1HomeVivo → secciones | Sin Noticias ni Salud del sistema; DesktopA las tenía desde s52 |
V1HomeVivo → FAB | 3 acciones; faltaba “Nota Cuaderno” → /tools/notebook?new=1 |
Cambios implementados
1. BottomNav — NavDivider y tools nuevas
- Nuevo tipo
NavDivider { divider: true; label: string }y unionNavChild = NavLink | NavDivider. - Type guard
isDivider()— protegeisActiveItemy el renderer del dropup. - Grupo “Operaciones” ampliado a 9 ítems con divisor visual “Herramientas”.
- Renderer del dropup renderiza el divisor como separador tipográfico (uppercase, fg-muted, borderTop).
2. V1HomeVivo — dashboard-message dinámico
useState<string|null>+useEffectque llama/api/dashboard-messagesolo en viewport ≤ 768 px.- Si la API devuelve
{ title }, el saludo estático se reemplaza por el headline dinámico.
3. V1HomeVivo — sección Noticias
useMobileDataamplíaPromise.allconfetchJson<ApiNews[]>('/api/news?limit=3').- 3 cards navegables con ★ pinned, chip categoría, fecha relativa (
newsRelativeDate), título. - Estados loading/empty con border dashed. CTA “Ver todas” →
/news.
4. V1HomeVivo — sección Salud del sistema
useMobileDataamplíaPromise.allconfetchJson<ApiHealthRow[]>('/api/health').- Card único con estado global (
healthOverall) + hasta 4 sensores con dot de color y valor monospace. - CTAs: “Ayuda” y “Pulse” →
/biblioteca/pulse.
5. V1HomeVivo — FAB ampliado
- Añadida opción “Nota Cuaderno” (📓) →
/tools/notebook?new=1.
Principio de diseño aplicado
Paridad funcional, no paridad visual.
El diseño mobile (sticky header, cards radius 14, SectionLabel uppercase, FAB con rotación 45°, BottomNav 5 grupos) se mantiene intacto. Solo se añade contenido y lógica donde había déficit funcional.
Archivos modificados
| Archivo | Tipo de cambio |
|---|---|
src/components/shell/BottomNav.tsx | Nuevos tipos, 4 ítems + divisor, renderer actualizado |
src/components/variants/mobile/V1HomeVivo.tsx | 3 secciones nuevas, headline dinámico, FAB ampliado |
Véase también
- [[entity—mobile—component—bottomnav]]
- [[entity—mobile—component—v1homevivo]]
- [[entity—monitoring—endpoint—health]]
- [[entity—news—endpoint—news]]
- [[entity—dashboard—endpoint—dashboard-message]]