diff --git a/nextjs-app/app/page.tsx b/nextjs-app/app/page.tsx index 1534156..43cc328 100644 --- a/nextjs-app/app/page.tsx +++ b/nextjs-app/app/page.tsx @@ -7,14 +7,14 @@ import { fetchSchools, fetchFilters } from '@/lib/api'; import { HomeView } from '@/components/HomeView'; interface HomePageProps { - searchParams: { + searchParams: Promise<{ search?: string; local_authority?: string; school_type?: string; page?: string; postcode?: string; radius?: string; - }; + }>; } export const metadata = { @@ -26,18 +26,21 @@ export const metadata = { export const dynamic = 'force-dynamic'; export default async function HomePage({ searchParams }: HomePageProps) { + // Await search params (Next.js 15 requirement) + const params = await searchParams; + // Parse search params - const page = parseInt(searchParams.page || '1'); - const radius = searchParams.radius ? parseInt(searchParams.radius) : undefined; + const page = parseInt(params.page || '1'); + const radius = params.radius ? parseInt(params.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, + search: params.search, + local_authority: params.local_authority, + school_type: params.school_type, + postcode: params.postcode, radius, page, page_size: 50,