import { AccountXmlUploadListPage } from "@/components/xml-apis/account-xml-upload/account-xml-upload-list-page"
import { clampPageNumber, clampPageSize } from "@/config/pagination"
import { fetchBackendAccountXmlUpload } from "./_lib/account-xml-upload-server-api"

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

export default async function AccountXmlUploadListRoute({
  searchParams,
}: AccountXmlUploadPageProps) {
  const params = await searchParams
  const page = clampPageNumber(params.page)
  const pageSize = clampPageSize(params.page_size, 10)
  const {
    items,
    totalCount,
    page: currentPage,
    pageSize: currentPageSize,
    pageCount,
    errorMessage,
  } = await fetchBackendAccountXmlUpload({ page, pageSize })

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