From 708f846245cacb08f28b82fb2a46d08fcb0ad70e Mon Sep 17 00:00:00 2001 From: Rohit Date: Tue, 8 Jul 2025 13:40:55 +0530 Subject: [PATCH] feat: structure text data for csv format --- src/components/run/RunContent.tsx | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/components/run/RunContent.tsx b/src/components/run/RunContent.tsx index 2ad3be11..38491854 100644 --- a/src/components/run/RunContent.tsx +++ b/src/components/run/RunContent.tsx @@ -194,17 +194,27 @@ export const RunContent = ({ row, currentLog, interpretationInProgress, logEndRe }; // Function to convert table data to CSV format - const convertToCSV = (data: any[], columns: string[]): string => { - const header = columns.join(','); - const rows = data.map(row => - columns.map(col => JSON.stringify(row[col] || "", null, 2)).join(',') - ); - return [header, ...rows].join('\n'); + const convertToCSV = (data: any[], columns: string[], isSchemaData: boolean = false): string => { + if (isSchemaData) { + // For schema data, export as Label-Value pairs + const header = 'Label,Value'; + const rows = columns.map(column => + `"${column}","${data[0][column] || ""}"` + ); + return [header, ...rows].join('\n'); + } else { + // For regular table data, export as normal table + const header = columns.join(','); + const rows = data.map(row => + columns.map(col => JSON.stringify(row[col] || "", null, 2)).join(',') + ); + return [header, ...rows].join('\n'); + } }; // Function to download a specific dataset as CSV - const downloadCSV = (data: any[], columns: string[], filename: string) => { - const csvContent = convertToCSV(data, columns); + const downloadCSV = (data: any[], columns: string[], filename: string, isSchemaData: boolean = false) => { + const csvContent = convertToCSV(data, columns, isSchemaData); const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }); const url = URL.createObjectURL(blob); @@ -304,7 +314,7 @@ export const RunContent = ({ row, currentLog, interpretationInProgress, logEndRe