Duplicates when Paginating

When using the following pagination code there are some duplicates,
  export let data: PageData;

  let hasMore = true;
  let perPage = 50;
  let page = -1;
  let messages:
    | {
        id: string;
        profile_id: string;
        repository_id: string;
        content: string;
        created_at: string;
        updated_at: string;
        flags: number;
      }[] = [];

  const loadMoreMessages = async ({
    detail: { loaded, complete },
  }: {
    detail: StateChanger;
  }) => {
    console.log("loading....");

    page++;

    const limits = getPagination(page, perPage)
    console.log(limits);
    let newMessages = await supabaseClient
      .from("messages")
      .select("*")
      .eq("repository_id", data.repo?.id ?? "-")
      .order("created_at", { ascending: false })
      .range(limits.from, limits.to);

    if ((newMessages.data?.length ?? perPage) < perPage) {
      complete();
      console.log("exceqd");
      console.log(messages);
      hasMore = false;
      return;
    }

    messages = [...((newMessages.data ?? []).reverse()), ...messages];
    loaded();
  };

  export const getPagination = (page: number, size: number) => {
    const limit = size ? +size : 25;
    const from = page ? page * limit : 0;
    const to = page ? from + size : size;

    return { from, to };
  };

duplicates:
[
    "Example Message: 195",
    "Example Message: 145",
    "Example Message: 100",
    "Example Message: 96",
    "Example Message: 95",
    "Example Message: 50",
    "Example Message: 47",
    "Example Message: 48",
    "Example Message: 49"
]
Was this page helpful?