import { basculerFacette, lireFiltres, rechercher } from '$serveur/requetes'; import type { PageServerLoad } from './$types'; /** * Recherche à facettes — rendu serveur, jamais prérendue. * * Les facettes vivent dans `url.searchParams` : une URL de recherche est * partageable et se recharge à l'identique. Le prérendu interdit d'y accéder, * c'est pourquoi cette route reste en rendu serveur (§3bis). */ export const load: PageServerLoad = async ({ url }) => { const filtres = lireFiltres(url.searchParams); const resultats = rechercher(filtres); return { filtres, resultats, // Les liens de facette sont calculés côté serveur : la page fonctionne // entièrement sans JavaScript. liens: Object.fromEntries( (['statut', 'theme', 'type', 'impact', 'guadeloupe', 'confiance'] as const).map( (champ) => [ champ, Object.fromEntries( resultats.facettes[champ === 'guadeloupe' ? 'guadeloupe' : champ].map((f) => [ f.valeur, basculerFacette(filtres, champ, f.valeur) ]) ) ] ) ) }; };