diff --git a/src/components/donations/AddDonationModal.svelte b/src/components/donations/AddDonationModal.svelte index b5f4156e..cb28f01c 100644 --- a/src/components/donations/AddDonationModal.svelte +++ b/src/components/donations/AddDonationModal.svelte @@ -98,19 +98,35 @@ } } } + onMount(()=>{ + loadDonorsAndRunnersPaginated(); + }) - onMount(() => { - DonorService.donorControllerGetAll().then((val) => { - donors = val.map((r) => { - return { label: getDonorLabel(r), value: r }; - }); - }); - RunnerService.runnerControllerGetAll().then((val) => { - runners = val.map((r) => { - return { label: getDonorLabel(r), value: r }; - }); - }); - }); + async function loadDonorsAndRunnersPaginated() { + let page = 0; + let pagesize = 500; + while (page >= 0) { + const don = await DonorService.donorControllerGetAll(page, pagesize); + const run = await RunnerService.runnerControllerGetAll(page, pagesize); + if (don.length == 0 && run.length == 0) { + page = -2; + } + + donors = donors.concat( + ...run.map((r) => { + return { label: getDonorLabel(r), value: r }; + }) + ); + runners = runners.concat( + ...run.map((r) => { + return { label: getDonorLabel(r), value: r }; + }) + ); + + dataLoaded = true; + page++; + } + } {#if modal_open}