import { Metadata } from 'next' import React from 'react' import { getTeams as fetchTeams, getRaidGroups } from '~/app/lib/data' import TeamsPageClient from './TeamsPageClient' // Force dynamic rendering because we use searchParams export const dynamic = 'force-dynamic' // Metadata export const metadata: Metadata = { title: 'Discover teams / granblue.team', description: 'Save and discover teams to use in Granblue Fantasy and search by raid, element or recency', } export default async function TeamsPage({ searchParams }: { searchParams: { element?: string; raid?: string; recency?: string; page?: string } }) { try { // Extract query parameters with type safety const element = searchParams.element ? parseInt(searchParams.element, 10) : undefined; const raid = searchParams.raid; const recency = searchParams.recency; const page = searchParams.page ? parseInt(searchParams.page, 10) : 1; // Parallel fetch data with Promise.all for better performance const [teamsData, raidGroupsData] = await Promise.all([ fetchTeams({ element, raid, recency, page }), getRaidGroups() ]); // Prepare data for client component const initialData = { teams: teamsData.results || [], raidGroups: raidGroupsData || [], pagination: { current_page: page, total_pages: teamsData.meta?.total_pages || 1, record_count: teamsData.meta?.count || 0 } }; return (