import { DeepdexViewAllPage } from "@/components/deepdex/deepdex-view-all-page"
import { parseDeepdexListQuery } from "@/components/deepdex/lib/parse-deepdex-list-query"
import { fetchBackendDeepdexList } from "./_lib/deepdex-server-api"

export const dynamic = "force-dynamic"

type DeepdexViewAllRouteProps = {
  searchParams: Promise<Record<string, string | undefined>>
}

export default async function DeepdexViewAllRoute({ searchParams }: DeepdexViewAllRouteProps) {
  const query = await searchParams
  const { page, pageSize, filters } = parseDeepdexListQuery(query)
  const result = await fetchBackendDeepdexList({ page, pageSize, filters })

  return (
    <DeepdexViewAllPage
      initialData={result.items}
      initialIndexedCount={result.indexedCount}
      initialTotalCount={result.totalCount}
      initialSettings={result.settings}
      initialErrorMessage={result.errorMessage}
      initialFilters={filters}
      pagination={{
        page: result.page,
        pageSize: result.pageSize,
        totalCount: result.totalCount,
        pageCount: result.pageCount,
      }}
    />
  )
}
