<FhirPagination />
The <FhirPagination /> helps with executing pagination on a FHIR search query and bundle.
It is designed to work in conjunction with the useFhirSearch and useFhirSearchController hooks, but can be used independently if need be.
Example usage
// The search controller coordinates activities and actions between the <FhirTable /> and the query.
const orgsSearchController = useFhirSearchController({
  defaultSort: "name",
  pageSize: 20,
});
const organizationQuery = useFhirSearch(
  "Organization",
  (search) =>
    search
      ._include("Organization", "partof")
      // The page size and sort must be controlled by the search controller, and passed to the query appropriately.
      ._count(orgsSearchController.pageSize)
      ._sort(orgsSearchController.sort)
      // The total must be requested for the pagination to work. Otherwise, you'll see a 0 out of 0 count.
      ._total("accurate"),
  // The third argument to the `useFhirSearch` hook is the page url that is manipulated by the search controller.
  orgsSearchController.pageUrl
);
return (
  <FhirTable
    {...organizationQuery}
    {...orgsSearchController}
    columns={[...]}
  />
  // Both the query and the controller are spread to the pagination, so that pages can be counted,
  // and page changes can be acted on the controller itself.
  <FhirPagination
    {...organizationQuery}
    {...orgsSearchController}
  />
Note
The capabilities of the pagination depends on the server support - most notably, the first and last links in the
returned bundle.
If the server omits those values, the pagination may disable some capabilities.