Duplicates when Paginating
When using the following pagination code there are some duplicates,
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 };
}; 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"
][
"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"
]