diff --git a/package-lock.json b/package-lock.json index 5fdab07..242d1f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,7 @@ "node_modules/@adobe/css-tools": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.2.0.tgz", - "integrity": "sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==" + "integrity": "sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqP" }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", @@ -18168,6 +18168,7 @@ "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "license": "Apache-2.0", "peer": true, "bin": { "tsc": "bin/tsc", diff --git a/src/components/CorpusMetadata/NavigationAndStats/DownloadData.js b/src/components/CorpusMetadata/NavigationAndStats/DownloadData.js index b9b2b7a..3d6f3dc 100644 --- a/src/components/CorpusMetadata/NavigationAndStats/DownloadData.js +++ b/src/components/CorpusMetadata/NavigationAndStats/DownloadData.js @@ -4,39 +4,38 @@ import React, { useContext } from "react"; import { CSVLink } from "react-csv"; import { Context } from "../../../App"; +// Function to flatten data for export (ChatGPT suggestion) +const flattenItem = (item) => ({ + id: item?.id, + release_code: item?.release_version?.release_code, + release_date: item?.release_version?.release_date, + version_code: item?.version_code, + version_uri: item?.version_uri, + pdf_url: item?.edition?.pdf_url, + language: item?.language, + analysis_priority: item?.release_version?.analysis_priority, + annotation_status: item?.release_version?.annotation_status, + token_length: item?.release_version?.tok_length, + char_length: item?.release_version?.char_length, + url: item?.release_version?.url, + text_tags: item?.text?.tags, + text_uri: item?.text?.text_uri, + title_ar_prefered: item?.text?.title_ar_prefered, + title_lat_prefered: item?.text?.title_lat_prefered, + author_uri: item?.text?.author?.[0]?.author_uri, + author_ar_prefered: item?.text?.author?.[0]?.author_ar_prefered, + author_lat_prefered: item?.text?.author?.[0]?.author_lat_prefered, + author_date_AH: item?.text?.author?.[0]?.date_AH, + author_date_CE: item?.text?.author?.[0]?.date_CE, +}); + + const DownloadData = ({ data, status }) => { const { checkedBooks } = useContext(Context); // format metadata for download - const specificData = - checkedBooks.length !== 0 - ? checkedBooks - : data.map((item) => { - const dataObject = { - id: item?.id, - release_code: item?.release_version?.release_code, - release_date: item?.release_version?.release_date, - version_code: item?.version_code, - version_uri: item?.version_uri, - pdf_url: item?.edition?.pdf_url, - language: item?.language, - analysis_priority: item?.release_version?.analysis_priority, - annotation_status: item?.release_version?.annotation_status, - token_length: item?.release_version?.tok_length, - char_length: item?.release_version?.char_length, - url: item?.release_version?.url, - text_tags: item?.text?.tags, - text_uri: item?.text?.text_uri, - title_ar_prefered: item?.text?.title_ar_prefered, - title_lat_prefered: item?.text?.title_lat_prefered, - author_uri: item?.text?.author[0]?.author_uri, - author_ar_prefered: item?.text?.author[0]?.author_ar_prefered, - author_lat_prefered: item?.text?.author[0]?.author_lat_prefered, - author_date_AH: item?.text?.author[0]?.date_AH, - author_date_CE: item?.text?.author[0]?.date_CE, - }; - return dataObject; - }); + const specificData = (checkedBooks.length !== 0 ? checkedBooks : data).map(flattenItem); + return ( { title={ checkedBooks.length < 3 ? pairwiseUrl === null ? "Pairwise File not available for selected books" - : "Download Pairwise File in CSV format" + : "Download Pairwise Text Reuse Data (larger file, excl. actual text alignments)" : "Select 2 books to download a file with pairwise text reuse" } placement="top" @@ -380,9 +380,9 @@ const NavigationAndStats = () => {