Novedad: filtra artículos por categoría (y así lo construimos)

Desde hoy podés filtrar el blog por categoría directamente desde el inicio: los chips de arriba (Tutorial, Guía, Noticias) y el listado del sidebar apuntan al mismo filtro, así que da igual desde dónde entres.
Cómo funciona por dentro
El filtro no es magia: es un searchParam (?category=Tutorial) que la página de índice usa para armar el filter de la consulta GraphQL contra TinaCMS:
1 2 3 4 5 6 7client.queries.postConnection({ filter: { categories: { category: { categoria: { nombre: { eq: category } } }, }, }, });
Como las categorías son una colección aparte (content/categorias) y cada post solo guarda una referencia a ellas, el filtro se resuelve del lado del servidor sin tener que traer todos los posts y filtrar en el cliente. Lo mismo aplica ahora para el autor: dejamos de repetir nombre y avatar en cada post y pasamos a referenciar content/authors, así que si dos artículos comparten autor, comparten el mismo documento.
Por qué categorías como referencia y no como texto
Antes de este cambio, las categorías eran strings sueltos escritos a mano en cada post. Funcionaba, pero tenía un costo real: escribir "Tutorial" en un post y "tutorial" en otro rompía el filtro en silencio, sin ningún error visible. Al modelarlas como colección con color y orden propios, TinaCMS valida la referencia y el resto del sitio (badges, contador de artículos por categoría, filtros) lee siempre el mismo dato.
¿Por qué el filtro de categorías se resuelve en el servidor y no trayendo todos los posts al cliente?
Si estás armando algo parecido en tu propio proyecto con Tina, el patrón corto es: modelá la relación como colección + reference, y dejá que el filtro viaje en la query en vez de hacerlo a mano después de traer los datos.
Comentarios
Inicia sesión para dejar un comentario.
Todavía no hay comentarios. ¡Sé el primero!