diff --git a/frontend/src/routes/dashboard/import/+page.svelte b/frontend/src/routes/dashboard/import/+page.svelte index e264629..203d710 100644 --- a/frontend/src/routes/dashboard/import/+page.svelte +++ b/frontend/src/routes/dashboard/import/+page.svelte @@ -106,7 +106,7 @@ let skipInvalidRows = $state(true); // ── Step 5: Progress + Results ──────────────────────────────────────────── - const BATCH_SIZE = 50; + const BATCH_SIZE = 5; const MAX_SHORT_CODE_LENGTH = 100; let progress = $state(0); // 0-100 let importDone = $state(false); @@ -413,6 +413,9 @@ return; } + // Yield to the browser so Svelte can paint the 0% state before the first request + await new Promise((r) => setTimeout(r, 0)); + const chunks: ImportLinkRow[][] = []; for (let i = 0; i < rows.length; i += BATCH_SIZE) { chunks.push(rows.slice(i, i + BATCH_SIZE)); @@ -465,6 +468,30 @@ Import Links - Rushomon +
@@ -569,7 +596,7 @@ : "Drag and drop a CSV file, or click to browse"}

- Supports .csv files up to any size (batched in chunks of 50) + Supports .csv files up to any size (batched in chunks of 5)

@@ -873,7 +900,9 @@

Please wait. Don't close this tab.

-
+