refactor(web): follow-ups de la AppBar (a11y, i18n, PageHeading, recursos) - #280
Merged
Conversation
Extrae el bloque de titulo/subtitulo repetido en las paginas migradas a AppBar variant="action" (PR #276) a un atomo reutilizable en apps/web/src/components/atoms/page-heading.tsx, y lo aplica en las 14 paginas que lo duplicaban.
Migra la unica pagina publica sin barra navy: anade AppBar variant="action" con backHref a la emergencia y sustituye el enlace de texto "<- volver" por el PageHeading con el nombre del recurso como titulo.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced Jul 1, 2026
vgpastor
added a commit
that referenced
this pull request
Jul 6, 2026
) Closes #277 Sustituye a **#337** (rama de fork con conflicto irresoluble desde fuera del fork): mismo cambio, rebasado sobre `main` (que ya incluye #336 y #338). ## Contexto `AppBar` hacía sus propias llamadas `api.GET('/auth/me')` + `api.GET('/notifications/mine')` sin pasar por el cache de datos. Desde #280, `getMe()`/`getNotificationUnread()` (en `navigation-data.ts`) están envueltas en `React.cache()` y varias páginas ya las usan, así que en cualquier página que renderiza `AppBar` y también usa esos loaders, `/auth/me` se duplicaba dentro del mismo request. ## Solución `AppBar` usa `getMe()`/`getNotificationUnread()` en lugar de llamadas `api.GET` propias. Cambio mínimo (1 fichero). Se preserva el `Promise.all` (paralelismo intacto) y la lógica de `next` del login (`resolveAppBarCurrentPath`, #278/#336). ## Resolución de conflicto El conflicto era solo el bloque de imports de `app-bar.tsx`: se conserva el import mínimo de `@/lib/auth` (el dedupe elimina el uso de `api`/`getToken`/`authHeaders`) y se mantiene el import de `resolveAppBarCurrentPath`. El cuerpo integra ambos cambios (dedupe + `currentPath`). ## Crédito Cambio original: PR #337. --------- Co-authored-by: daniel <daniel@nopestack.dev> Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-ups de la revisión de #276. Cambios pequeños y de bajo riesgo.
Incluye
appbar.open_menu/close_menuen es/en; antes los tres labels eran el mismo "Menú").t.homeque solo usaba el borradoAccountNav(verificadas por grep; se conservaron las homónimas del namespacenav.*, que sí se usan).PageHeading(h1 + subtítulo) y lo aplica en 14 páginas de acción (15 ocurrencias), eliminando el bloque duplicado.recursos/[resourceId]pasa a usarAppBar variant="action"+PageHeading(era la única página pública sin la barra unificada).Verificación
pnpm --filter @reliefhub/api-client build && pnpm --filter web build+pnpm --filter web linten verde (1 warning preexistente ajeno enapple-icon.tsx).No incluidos (con motivo)
Promise.all(paralelo, 1 latencia); coste inherente a mostrar cuenta + badge de notificaciones. Sin arreglo simple con valor real → se deja abierto.nextdel login preciso): requiere middleware/proxy.ts(no existe en el web) para exponer el pathname a un Server Component, o cablearlo por ~20 páginas. No es simple ni es regresión → se deja abierto.Closes #273
Closes #274
Closes #275
Closes #279