function usePageURLState()

in src/hooks/usePagination/index.ts [156:179]


function usePageURLState(
  key: string,
  prefix: string,
  initialPage: number
): ReturnType<typeof useURLState> {
  const [page, setPage] = useURLState(key, { defaultValue: initialPage + 1, prefix });
  const [zeroIndexPage, setZeroIndexPage] = React.useState(page - 1);

  React.useEffect(() => {
    setZeroIndexPage((zeroIndexPage: number) => {
      if (page - 1 !== zeroIndexPage) {
        return page - 1;
      }

      return zeroIndexPage;
    });
  }, [page]);

  React.useEffect(() => {
    setPage(zeroIndexPage + 1);
  }, [setPage, zeroIndexPage]);

  return [zeroIndexPage, setZeroIndexPage];
}