import { AllBanksListPage } from "@/components/xml-apis/all-banks/all-banks-list-page"
import { fetchBackendAllBanks } from "./_lib/all-banks-server-api"

type AllBanksPageProps = {
  searchParams: Promise<{
    page?: string
    page_size?: string
  }>
}

export default async function AllBanksListRoute({ searchParams }: AllBanksPageProps) {
  const params = await searchParams
  const page = Number(params.page ?? "1")
  const pageSize = Number(params.page_size ?? "10")
  const {
    items,
    totalCount,
    page: currentPage,
    pageSize: currentPageSize,
    pageCount,
    errorMessage,
  } = await fetchBackendAllBanks({
    page: Number.isFinite(page) && page > 0 ? page : 1,
    pageSize: Number.isFinite(pageSize) && pageSize > 0 ? pageSize : 10,
  })

  return (
    <AllBanksListPage
      initialData={items}
      initialTotalCount={totalCount}
      initialPage={currentPage}
      initialPageSize={currentPageSize}
      initialPageCount={pageCount}
      initialErrorMessage={errorMessage}
    />
  )
}
