/** * Home Page (SSR) * Main landing page with school search and browsing */ import { fetchSchools, fetchFilters } from '@/lib/api'; import { HomeView } from '@/components/HomeView'; interface HomePageProps { searchParams: { search?: string; local_authority?: string; school_type?: string; page?: string; postcode?: string; radius?: string; }; } export const metadata = { title: 'Home', description: 'Search and compare primary school KS2 performance across England', }; // Force dynamic rendering (no static generation at build time) export const dynamic = 'force-dynamic'; export default async function HomePage({ searchParams }: HomePageProps) { // Parse search params const page = parseInt(searchParams.page || '1'); const radius = searchParams.radius ? parseInt(searchParams.radius) : undefined; // Fetch data on server with error handling try { const [schoolsData, filtersData] = await Promise.all([ fetchSchools({ search: searchParams.search, local_authority: searchParams.local_authority, school_type: searchParams.school_type, postcode: searchParams.postcode, radius, page, page_size: 50, }), fetchFilters(), ]); return ( ); } catch (error) { console.error('Error fetching data for home page:', error); // Return error state with empty data return ( ); } }