Commits

La agenda de la home, el relleno por comarcas y el menú de cuenta

Miércoles de home: agenda rehecha con tres destacadas y seis próximas citas,

Miércoles de home. Ocho commits y dos grandes temas: la sección de agenda, rehecha de arriba abajo, y la navegación de cuenta. En medio, tres bugs de relleno que valían más que el resto plegado.

Tres destacadas y seis próximas

La sección de agenda de la home era un listado plano. Ahora tiene estructura: tres agendas destacadas en fila arriba y seis próximas citas abajo. Más agenda, menos página: la cuadrícula encaja sin atosigar al resto de secciones.

El relleno, comarca a comarca

Cuando una comarca no tiene citas propias, la cuadrícula se rellena con las últimas agendas celebradas. El código pedía esas agendas con una sola consulta y un límite global, y ahí aparecía el problema: una comarca densa agotaba el límite ella sola y dejaba a las otras fuera de la lista. La comarca con más movimiento se comía el relleno de todas.

La solución: una consulta por comarca. Cada comarca tiene su trozo del límite y ninguna se queda sin representación.

Y enseguida, el segundo bug, el clásico: un off-by-one en el bucle de relleno. Sin el corte, la última vuelta del bucle se pasaba del total y la cuadrícula pintaba una cita de más:

while (omplir.length < buit && queda) {
  queda = false;
  for (const c of falten) {
    if (omplir.length >= buit) break;
    const p = pools.get(c);

Una línea. El típico error que no ves hasta que alguien cuenta las fichas con el dedo.

Cuando una comarca no tiene nada en la agenda

Hay comarcas sin citas futuras. Antes, la fila quedaba vacía y punto: un agujero en la home. Ahora, si no hay nada por venir, la fila hace una CTA hacia la agenda para que nadie se encuentre un espacio muerto, y el relleno usa las últimas agendas celebradas con un máximo de cuatro por comarca, para no repetir siempre las mismas. El límite de citas futuras ha subido de seis a nueve.

De paso, dos arreglos que no se ven: los huecos de la cuadrícula ahora se mapean a {slug, label}, que es el tipo que espera el componente FeaturedAgenda, y la fila de la CTA lleva clase doble para que la media query de móvil la caiga bien.

Menú de cuenta, y fuera el Subscríbete

En la navegación ha estado la segunda mitad del día. El botón de cuenta ahora despliega un menú con perfil, contraseña, planes y salir. El BottomNav gana un botón Más con el resto de secciones: en el móvil no caben todas y está bien asumirlo. Y el header se ha aligerado: el logo se queda solo con las letras PX y fuera el CTA de Subscríbete, que ya vive en la home y en la ficha de planes.

La home empieza a sostenerse sola: agenda, próximas citas y cuenta, cada cosa en su sitio.

Últimos remates de la noche

El día no estaba cerrado. Las fichas de escapada pierden la duración: un dato menos en el RouteCard que no aportaba nada. El listado de noticias gana el filtro de comarca reutilizando buildBaseWhere y la FilterBar que ya existían: la maquinaria compartida empieza a devolver la inversión. Y las ProfileCard del listado de entrevistas muestran ahora la imagen destacada: un listado con caras se lee de otra manera.