diff --git a/src/routes/stock-screener/+page.svelte b/src/routes/stock-screener/+page.svelte index ece2d2ad..3ba6749c 100644 --- a/src/routes/stock-screener/+page.svelte +++ b/src/routes/stock-screener/+page.svelte @@ -2066,6 +2066,37 @@ const handleKeyDown = (event) => { } } } + + const exportData = (format = "csv") => { + if (data?.user?.tier === "Pro") { + // Add headers row dynamically based on columns + const csvRows = []; + const headers = columns.map((col) => col.label).join(","); + csvRows.push(headers); + + // Add data rows dynamically based on columns + filteredData?.forEach((item) => { + const csvRow = columns + .map((col) => item[col.key]) // Dynamically map item values based on column keys + .join(","); + csvRows.push(csvRow); + }); + + // Create CSV blob and trigger download + const csv = csvRows.join("\n"); + const blob = new Blob([csv], { type: "text/csv" }); + const url = window.URL.createObjectURL(blob); + const a = document.createElement("a"); + a.setAttribute("hidden", ""); + a.setAttribute("href", url); + a.setAttribute("download", `stock_screener_data.csv`); + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + } else { + goto("/pricing"); + } + }; @@ -2775,7 +2806,7 @@ const handleKeyDown = (event) => {
-