diff --git a/src/routes/settings.import.tsx b/src/routes/settings.import.tsx index 6ec764c..8b3de40 100644 --- a/src/routes/settings.import.tsx +++ b/src/routes/settings.import.tsx @@ -678,7 +678,7 @@ function ImportPage() { console.info(`[import] lookups loaded: clients=${ctx.clientByExt.size}/${ctx.clientByName.size} cases=${ctx.caseByExt.size}/${ctx.caseByNumber.size}/${ctx.caseByTitle.size} users=${ctx.userByName.size}`); }; - const handleFile = async (cfg: ImporterConfig, file: File) => { + const handleFile = async (cfg: ImporterConfig, source: File | string) => { if (!user?.id) return; setResults((r) => ({ ...r, [cfg.key]: "running" })); ctx.defaultClientId = cfg.key === "locations" ? (defaultClientId || null) : null; @@ -686,12 +686,20 @@ function ImportPage() { await ensureLookupsLoaded(); const parsed = await new Promise>>((resolve, reject) => { - Papa.parse>(file, { - header: true, - skipEmptyLines: true, - complete: resolve, - error: reject, - }); + if (typeof source === "string") { + const result = Papa.parse>(source, { + header: true, + skipEmptyLines: true, + }); + resolve(result); + } else { + Papa.parse>(source, { + header: true, + skipEmptyLines: true, + complete: resolve, + error: reject, + }); + } }); const rawRows = parsed.data;