From 0b5d64e09671bd77863d881d92854c30db8cb7a0 Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Mon, 4 Dec 2023 16:41:34 -0500 Subject: [PATCH 01/11] Updated dummy data, added error count column, and error dialog --- .../Contexts/BatchTableContext.tsx | 7 + .../dataSubmissions/DataSubmission.tsx | 130 +++++++++++++++--- src/types/Submissions.d.ts | 2 +- 3 files changed, 122 insertions(+), 17 deletions(-) create mode 100644 src/content/dataSubmissions/Contexts/BatchTableContext.tsx diff --git a/src/content/dataSubmissions/Contexts/BatchTableContext.tsx b/src/content/dataSubmissions/Contexts/BatchTableContext.tsx new file mode 100644 index 00000000..a0d7ca59 --- /dev/null +++ b/src/content/dataSubmissions/Contexts/BatchTableContext.tsx @@ -0,0 +1,7 @@ +import React from 'react'; + +const BatchTableContext = React.createContext<{ + handleOpenErrorDialog?:(id: string) => void; +}>({}); + +export default BatchTableContext; diff --git a/src/content/dataSubmissions/DataSubmission.tsx b/src/content/dataSubmissions/DataSubmission.tsx index cea17015..6519d74c 100644 --- a/src/content/dataSubmissions/DataSubmission.tsx +++ b/src/content/dataSubmissions/DataSubmission.tsx @@ -1,10 +1,11 @@ -import { useEffect, useRef, useState } from "react"; +import { useEffect, useMemo, useRef, useState } from "react"; import { useParams } from "react-router-dom"; import { useLazyQuery, useMutation } from "@apollo/client"; import { Alert, AlertColor, Box, + Button, Card, CardActions, CardActionsProps, @@ -36,6 +37,8 @@ import { FormatDate } from "../../utils"; import DataSubmissionActions from "./DataSubmissionActions"; import QualityControl from "./QualityControl"; import { ReactComponent as CopyIconSvg } from "../../assets/icons/copy_icon_2.svg"; +import ErrorDialog from "./ErrorDialog"; +import BatchTableContext from "./Contexts/BatchTableContext"; const StyledBanner = styled("div")(({ bannerSrc }: { bannerSrc: string }) => ({ background: `url(${bannerSrc})`, @@ -197,6 +200,56 @@ const StyledCopyIDButton = styled(IconButton)(() => ({ } })); +const StyledErrorDetailsButton = styled(Button)(() => ({ + color: "#0D78C5", + fontFamily: "Inter", + fontSize: "16px", + fontStyle: "normal", + fontWeight: 600, + lineHeight: "19px", + textDecorationLine: "underline", + textTransform: "none", + padding: 0, + justifyContent: "flex-start", + "&:hover": { + background: "transparent", + textDecorationLine: "underline", + }, +})); + +const testData: ErrorMessage[][] = [ + [ + { + title: "Incorrect control vocabulary.", + description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Eget duis at tellus at urna condimentum mattis. Eget nunc scelerisque viverra mauris in aliquam sem.", + }, + { + title: "Missing required field.", + description: "Elit eget gravida cum sociis natoque. Risus quis varius quam quisque id diam vel quam. Senectus et netus et malesuada fames ac turpis egestas. Scelerisque eu ultrices vitae auctor eu augue ut.", + }, + { + title: "Value not in the range.", + description: "Consectetur adipiscing elit pellentesque habitant morbi tristique senectus. Nec ullamcorper sit amet risus. Faucibus in ornare quam viverra orci sagittis. Venenatis urna cursus eget nunc.", + }, + ], + [ + { + title: "Missing required field.", + description: "Elit eget gravida cum sociis natoque. Risus quis varius quam quisque id diam vel quam. Senectus et netus et malesuada fames ac turpis egestas. Scelerisque eu ultrices vitae auctor eu augue ut.", + }, + ], + [ + { + title: "Value not in the range.", + description: "Consectetur adipiscing elit pellentesque habitant morbi tristique senectus. Nec ullamcorper sit amet risus. Faucibus in ornare quam viverra orci sagittis. Venenatis urna cursus eget nunc.", + }, + { + title: "Incorrect control vocabulary.", + description: "Elit eget gravida cum sociis natoque. Risus quis varius quam quisque id diam vel quam. Senectus et netus et malesuada fames ac turpis egestas. Scelerisque eu ultrices vitae auctor eu augue ut.", + }, + ] +]; + const columns: Column[] = [ { label: "Upload Type", @@ -225,7 +278,25 @@ const columns: Column[] = [ default: true, minWidth: "240px" }, - /* TODO: Error Count removed for MVP2-M2. Will be re-added in the future */ + { + label: "Error Count", + renderValue: (data) => data?.errors?.length > 0 && ( + + {({ handleOpenErrorDialog }) => ( + handleOpenErrorDialog && handleOpenErrorDialog(data?._id)} + variant="text" + disableRipple + disableTouchRipple + disableFocusRipple + > + {data.errors?.length > 0 ? `${data.errors.length} ${data.errors.length === 1 ? "Error" : "Errors"}` : ""} + + )} + + ), + field: "errors", + }, ]; const URLTabs = { @@ -245,8 +316,11 @@ const DataSubmission = () => { const [error, setError] = useState(null); const [loading, setLoading] = useState(false); const [changesAlert, setChangesAlert] = useState(null); + const [openErrorDialog, setOpenErrorDialog] = useState(false); + const [selectedRow, setSelectedRow] = useState(null); const tableRef = useRef(null); const isValidTab = tab && Object.values(URLTabs).includes(tab); + const selectedData = batchFiles?.find((item) => item._id === selectedRow); const [getSubmission] = useLazyQuery(GET_SUBMISSION, { variables: { id: submissionId }, @@ -293,7 +367,10 @@ const DataSubmission = () => { setError("Unable to retrieve batch data."); return; } - setBatchFiles(newBatchFiles.listBatches.batches); + /* TODO: REMOVE - TESTING PURPOSES ONLY */ + const dummyBatches: Batch[] = newBatchFiles.listBatches.batches.map((batch, idx) => (testData[idx] ? ({ ...batch, status: "Upload Failed", errors: testData[idx] }) : { ...batch, status: "Uploaded" })); + /* =============== */ + setBatchFiles(dummyBatches); setTotalBatchFiles(newBatchFiles.listBatches.total); } catch (err) { setError("Unable to retrieve batch data."); @@ -372,6 +449,15 @@ const DataSubmission = () => { navigator.clipboard.writeText(submissionId); }; + const handleOpenErrorDialog = (id: string) => { + setOpenErrorDialog(true); + setSelectedRow(id); + }; + + const providerValue = useMemo(() => ({ + handleOpenErrorDialog + }), [handleOpenErrorDialog]); + return ( @@ -419,20 +505,24 @@ const DataSubmission = () => { - {tab === URLTabs.DATA_UPLOAD ? ( - + + <> + + + + ) : } @@ -444,6 +534,14 @@ const DataSubmission = () => { + setOpenErrorDialog(false)} + header="Data Submission" + title="Error Count" + errors={selectedData?.errors} + uploadedDate={dataSubmission?.createdAt} + /> ); }; diff --git a/src/types/Submissions.d.ts b/src/types/Submissions.d.ts index 8d4d097a..2d2af762 100644 --- a/src/types/Submissions.d.ts +++ b/src/types/Submissions.d.ts @@ -89,7 +89,7 @@ type Batch = { fileCount: number; // calculated by BE files: BatchFileInfo[]; status: BatchStatus; // [New, Uploaded, Upload Failed, Loaded, Rejected] Loaded and Rejected are for metadata batch only - errors: string[]; + errors: ErrorMessage[]; createdAt: string; // ISO 8601 date time format with UTC or offset e.g., 2023-05-01T09:23:30Z updatedAt: string; // ISO 8601 date time format with UTC or offset e.g., 2023-05-01T09:23:30Z }; From 4f5243d25a113764437fe2e5bf0aab253fe3686d Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Thu, 14 Dec 2023 09:19:11 -0500 Subject: [PATCH 02/11] Revert type --- src/types/Submissions.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types/Submissions.d.ts b/src/types/Submissions.d.ts index 7d6bc805..62cd76c4 100644 --- a/src/types/Submissions.d.ts +++ b/src/types/Submissions.d.ts @@ -89,7 +89,7 @@ type Batch = { fileCount: number; // calculated by BE files: BatchFileInfo[]; status: BatchStatus; // [New, Uploaded, Upload Failed, Loaded, Rejected] Loaded and Rejected are for metadata batch only - errors: ErrorMessage[]; + errors: string[]; createdAt: string; // ISO 8601 date time format with UTC or offset e.g., 2023-05-01T09:23:30Z updatedAt: string; // ISO 8601 date time format with UTC or offset e.g., 2023-05-01T09:23:30Z }; From faef6cb4cf2251812bd04667acf531564d5482ea Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Thu, 14 Dec 2023 09:20:45 -0500 Subject: [PATCH 03/11] Added error dialog to to the batch table --- .../Contexts/BatchTableContext.tsx | 2 +- .../dataSubmissions/DataSubmission.tsx | 82 ++++++------------- src/content/dataSubmissions/ErrorDialog.tsx | 10 ++- .../dataSubmissions/QualityControl.tsx | 2 +- 4 files changed, 35 insertions(+), 61 deletions(-) diff --git a/src/content/dataSubmissions/Contexts/BatchTableContext.tsx b/src/content/dataSubmissions/Contexts/BatchTableContext.tsx index a0d7ca59..e5c9ac5c 100644 --- a/src/content/dataSubmissions/Contexts/BatchTableContext.tsx +++ b/src/content/dataSubmissions/Contexts/BatchTableContext.tsx @@ -1,7 +1,7 @@ import React from 'react'; const BatchTableContext = React.createContext<{ - handleOpenErrorDialog?:(id: string) => void; + handleOpenErrorDialog?:(data: Batch) => void; }>({}); export default BatchTableContext; diff --git a/src/content/dataSubmissions/DataSubmission.tsx b/src/content/dataSubmissions/DataSubmission.tsx index f5137d36..0a10bc13 100644 --- a/src/content/dataSubmissions/DataSubmission.tsx +++ b/src/content/dataSubmissions/DataSubmission.tsx @@ -223,39 +223,6 @@ const StyledErrorDetailsButton = styled(Button)(() => ({ }, })); -const testData: ErrorMessage[][] = [ - [ - { - title: "Incorrect control vocabulary.", - description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Eget duis at tellus at urna condimentum mattis. Eget nunc scelerisque viverra mauris in aliquam sem.", - }, - { - title: "Missing required field.", - description: "Elit eget gravida cum sociis natoque. Risus quis varius quam quisque id diam vel quam. Senectus et netus et malesuada fames ac turpis egestas. Scelerisque eu ultrices vitae auctor eu augue ut.", - }, - { - title: "Value not in the range.", - description: "Consectetur adipiscing elit pellentesque habitant morbi tristique senectus. Nec ullamcorper sit amet risus. Faucibus in ornare quam viverra orci sagittis. Venenatis urna cursus eget nunc.", - }, - ], - [ - { - title: "Missing required field.", - description: "Elit eget gravida cum sociis natoque. Risus quis varius quam quisque id diam vel quam. Senectus et netus et malesuada fames ac turpis egestas. Scelerisque eu ultrices vitae auctor eu augue ut.", - }, - ], - [ - { - title: "Value not in the range.", - description: "Consectetur adipiscing elit pellentesque habitant morbi tristique senectus. Nec ullamcorper sit amet risus. Faucibus in ornare quam viverra orci sagittis. Venenatis urna cursus eget nunc.", - }, - { - title: "Incorrect control vocabulary.", - description: "Elit eget gravida cum sociis natoque. Risus quis varius quam quisque id diam vel quam. Senectus et netus et malesuada fames ac turpis egestas. Scelerisque eu ultrices vitae auctor eu augue ut.", - }, - ] -]; - const columns: Column[] = [ { label: "Upload Type", @@ -288,19 +255,27 @@ const columns: Column[] = [ }, { label: "Error Count", - renderValue: (data) => data?.errors?.length > 0 && ( + renderValue: (data) => ( - {({ handleOpenErrorDialog }) => ( - handleOpenErrorDialog && handleOpenErrorDialog(data?._id)} - variant="text" - disableRipple - disableTouchRipple - disableFocusRipple - > - {data.errors?.length > 0 ? `${data.errors.length} ${data.errors.length === 1 ? "Error" : "Errors"}` : ""} - - )} + {({ handleOpenErrorDialog }) => { + const errors = data?.files?.flatMap((file) => file.errors); + + if (errors?.length === 0) { + return null; + } + + return ( + handleOpenErrorDialog && handleOpenErrorDialog(data)} + variant="text" + disableRipple + disableTouchRipple + disableFocusRipple + > + {errors?.length > 0 ? `${errors.length} ${errors.length === 1 ? "Error" : "Errors"}` : ""} + + ); + }} ), field: "errors", @@ -326,7 +301,7 @@ const DataSubmission = () => { const [loading, setLoading] = useState(false); const [changesAlert, setChangesAlert] = useState(null); const [openErrorDialog, setOpenErrorDialog] = useState(false); - const [selectedRow, setSelectedRow] = useState(null); + const [selectedRow, setSelectedRow] = useState(null); const tableRef = useRef(null); const isValidTab = tab && Object.values(URLTabs).includes(tab); const disableSubmit = useMemo( @@ -379,10 +354,7 @@ const DataSubmission = () => { setError("Unable to retrieve batch data."); return; } - /* TODO: REMOVE - TESTING PURPOSES ONLY */ - const dummyBatches: Batch[] = newBatchFiles.listBatches.batches.map((batch, idx) => (testData[idx] ? ({ ...batch, status: "Upload Failed", errors: testData[idx] }) : { ...batch, status: "Uploaded" })); - /* =============== */ - setBatchFiles(dummyBatches); + setBatchFiles(newBatchFiles.listBatches.batches); setTotalBatchFiles(newBatchFiles.listBatches.total); } catch (err) { setError("Unable to retrieve batch data."); @@ -461,9 +433,9 @@ const DataSubmission = () => { navigator.clipboard.writeText(submissionId); }; - const handleOpenErrorDialog = (id: string) => { + const handleOpenErrorDialog = (data: Batch) => { setOpenErrorDialog(true); - setSelectedRow(id); + setSelectedRow(data); }; const providerValue = useMemo(() => ({ @@ -546,14 +518,14 @@ const DataSubmission = () => { - {/* setOpenErrorDialog(false)} header="Data Submission" title="Error Count" - errors={selectedData?.errors} + errors={selectedRow?.files?.flatMap((file) => file.errors)} uploadedDate={dataSubmission?.createdAt} - /> */} + /> ); }; diff --git a/src/content/dataSubmissions/ErrorDialog.tsx b/src/content/dataSubmissions/ErrorDialog.tsx index 7132705f..e0bdebfe 100644 --- a/src/content/dataSubmissions/ErrorDialog.tsx +++ b/src/content/dataSubmissions/ErrorDialog.tsx @@ -94,13 +94,15 @@ const StyledErrorItem = styled(Typography)({ const StyledErrorDetails = styled(Stack)({ padding: "10px", + overflowY: "auto", + maxHeight: "290px" }); type Props = { header?: string; title?: string; closeText?: string; - errors: ErrorMessage[]; + errors: string[]; uploadedDate: string; onClose?: () => void; } & Omit; @@ -137,10 +139,10 @@ const ErrorDialog = ({ {`${errors?.length || 0} ${errors?.length === 1 ? "COUNT" : "COUNTS"} ON ${FormatDate(uploadedDate, "M/D/YYYY", "N/A")}:`} - {errors?.map((error: ErrorMessage, idx: number) => ( + {errors?.map((error: string, idx: number) => ( // eslint-disable-next-line react/no-array-index-key - - {`${idx + 1}. ${error.description}`} + + {`${idx + 1}. ${error}`} ))} diff --git a/src/content/dataSubmissions/QualityControl.tsx b/src/content/dataSubmissions/QualityControl.tsx index ed865662..1b389964 100644 --- a/src/content/dataSubmissions/QualityControl.tsx +++ b/src/content/dataSubmissions/QualityControl.tsx @@ -184,7 +184,7 @@ const QualityControl = () => { onClose={() => setOpenErrorDialog(false)} header="Data Submission" title="Reasons" - errors={selectedRow?.description} + errors={selectedRow?.description?.map((error) => error.description)} uploadedDate={selectedRow?.uploadedDate} /> From 52e807a62d802a92b15697e325ed24ef5ae03960 Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Thu, 14 Dec 2023 09:21:07 -0500 Subject: [PATCH 04/11] Updated error message when failed to upload to S3 bucket --- src/components/DataSubmissions/DataSubmissionUpload.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/DataSubmissions/DataSubmissionUpload.tsx b/src/components/DataSubmissions/DataSubmissionUpload.tsx index 8bfff301..23c9f0da 100644 --- a/src/components/DataSubmissions/DataSubmissionUpload.tsx +++ b/src/components/DataSubmissions/DataSubmissionUpload.tsx @@ -235,7 +235,7 @@ const DataSubmissionUpload = ({ submitterID, readOnly, onUpload }: Props) => { } }); if (!res.ok) { - throw new Error("Unexpected network error"); + throw new Error(`Upload Failed: We couldn't upload '${file.fileName}'. Please wait a moment and try again.`); } uploadResult.push({ fileName: file.fileName, succeeded: true, errors: null }); } catch (err) { From ca35b0b93f3a11e2ffb0c4279cac000b3d8d9a9c Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Thu, 14 Dec 2023 14:13:40 -0500 Subject: [PATCH 05/11] Use batch level errors instead of file level errors --- src/content/dataSubmissions/DataSubmission.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/content/dataSubmissions/DataSubmission.tsx b/src/content/dataSubmissions/DataSubmission.tsx index 0a10bc13..e8429feb 100644 --- a/src/content/dataSubmissions/DataSubmission.tsx +++ b/src/content/dataSubmissions/DataSubmission.tsx @@ -258,9 +258,7 @@ const columns: Column[] = [ renderValue: (data) => ( {({ handleOpenErrorDialog }) => { - const errors = data?.files?.flatMap((file) => file.errors); - - if (errors?.length === 0) { + if (data?.errors?.length === 0) { return null; } @@ -272,7 +270,7 @@ const columns: Column[] = [ disableTouchRipple disableFocusRipple > - {errors?.length > 0 ? `${errors.length} ${errors.length === 1 ? "Error" : "Errors"}` : ""} + {data.errors?.length > 0 ? `${data.errors.length} ${data.errors.length === 1 ? "Error" : "Errors"}` : ""} ); }} @@ -523,7 +521,7 @@ const DataSubmission = () => { onClose={() => setOpenErrorDialog(false)} header="Data Submission" title="Error Count" - errors={selectedRow?.files?.flatMap((file) => file.errors)} + errors={selectedRow?.errors} uploadedDate={dataSubmission?.createdAt} /> From 8d7d3da5c4f8a3c1eb9f6013ee676d96d56e99c8 Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Thu, 14 Dec 2023 14:17:06 -0500 Subject: [PATCH 06/11] Update Batch table default rows per page to 20 --- src/content/dataSubmissions/DataSubmission.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/content/dataSubmissions/DataSubmission.tsx b/src/content/dataSubmissions/DataSubmission.tsx index e8429feb..bb2ff0c9 100644 --- a/src/content/dataSubmissions/DataSubmission.tsx +++ b/src/content/dataSubmissions/DataSubmission.tsx @@ -500,6 +500,7 @@ const DataSubmission = () => { data={batchFiles || []} total={totalBatchFiles || 0} loading={loading} + defaultRowsPerPage={20} onFetchData={handleFetchBatchFiles} /> From e14160148e9de7075cc3494bcc163939aa4cc8b0 Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Thu, 14 Dec 2023 14:19:46 -0500 Subject: [PATCH 07/11] QC table column wording change --- src/content/dataSubmissions/QualityControl.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/dataSubmissions/QualityControl.tsx b/src/content/dataSubmissions/QualityControl.tsx index 1b389964..28b2a13b 100644 --- a/src/content/dataSubmissions/QualityControl.tsx +++ b/src/content/dataSubmissions/QualityControl.tsx @@ -65,7 +65,7 @@ const columns: Column[] = [ field: "severity", }, { - label: "Uploaded Date", + label: "Validated Date", renderValue: (data) => (data?.uploadedDate ? `${FormatDate(data.uploadedDate, "MM-DD-YYYY [at] hh:mm A")}` : ""), field: "uploadedDate", default: true From ca27a1bba3a598963475a07a58304162e3a7eadf Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Thu, 14 Dec 2023 14:23:34 -0500 Subject: [PATCH 08/11] Small formatting change --- src/content/dataSubmissions/Contexts/BatchTableContext.tsx | 4 ++-- src/content/dataSubmissions/Contexts/QCResultsContext.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content/dataSubmissions/Contexts/BatchTableContext.tsx b/src/content/dataSubmissions/Contexts/BatchTableContext.tsx index e5c9ac5c..4aa65c09 100644 --- a/src/content/dataSubmissions/Contexts/BatchTableContext.tsx +++ b/src/content/dataSubmissions/Contexts/BatchTableContext.tsx @@ -1,7 +1,7 @@ -import React from 'react'; +import React from "react"; const BatchTableContext = React.createContext<{ - handleOpenErrorDialog?:(data: Batch) => void; + handleOpenErrorDialog?:(data: Batch) => void; }>({}); export default BatchTableContext; diff --git a/src/content/dataSubmissions/Contexts/QCResultsContext.tsx b/src/content/dataSubmissions/Contexts/QCResultsContext.tsx index ef82cf65..fd07d42e 100644 --- a/src/content/dataSubmissions/Contexts/QCResultsContext.tsx +++ b/src/content/dataSubmissions/Contexts/QCResultsContext.tsx @@ -1,7 +1,7 @@ -import React from 'react'; +import React from "react"; const QCResultsContext = React.createContext<{ - handleOpenErrorDialog?:(data: QCResult) => void; + handleOpenErrorDialog?:(data: QCResult) => void; }>({}); export default QCResultsContext; From 190d32d29c6b1689047da60391212214f254e75a Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Thu, 14 Dec 2023 14:27:17 -0500 Subject: [PATCH 09/11] Revert error wording --- src/components/DataSubmissions/DataSubmissionUpload.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/DataSubmissions/DataSubmissionUpload.tsx b/src/components/DataSubmissions/DataSubmissionUpload.tsx index 23c9f0da..8bfff301 100644 --- a/src/components/DataSubmissions/DataSubmissionUpload.tsx +++ b/src/components/DataSubmissions/DataSubmissionUpload.tsx @@ -235,7 +235,7 @@ const DataSubmissionUpload = ({ submitterID, readOnly, onUpload }: Props) => { } }); if (!res.ok) { - throw new Error(`Upload Failed: We couldn't upload '${file.fileName}'. Please wait a moment and try again.`); + throw new Error("Unexpected network error"); } uploadResult.push({ fileName: file.fileName, succeeded: true, errors: null }); } catch (err) { From f1ced532ae4d074faca8308bb87a7c6ce1f6dd30 Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Fri, 15 Dec 2023 12:12:26 -0500 Subject: [PATCH 10/11] Wording change and disable sorting for errors --- .../dataSubmissions/DataSubmission.tsx | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/content/dataSubmissions/DataSubmission.tsx b/src/content/dataSubmissions/DataSubmission.tsx index bb2ff0c9..cd7aacee 100644 --- a/src/content/dataSubmissions/DataSubmission.tsx +++ b/src/content/dataSubmissions/DataSubmission.tsx @@ -254,7 +254,7 @@ const columns: Column[] = [ } }, { - label: "Error Count", + label: "Errors", renderValue: (data) => ( {({ handleOpenErrorDialog }) => { @@ -277,6 +277,7 @@ const columns: Column[] = [ ), field: "errors", + sortDisabled: true }, ]; @@ -488,22 +489,20 @@ const DataSubmission = () => { {tab === URLTabs.DATA_UPLOAD ? ( - <> - - - + + ) : } From 2cdd2ea4f615f8fa4b3e2f07705175dce7061aa1 Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Fri, 15 Dec 2023 12:26:00 -0500 Subject: [PATCH 11/11] Revert to uploaded date, will address in future PR --- src/content/dataSubmissions/QualityControl.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/dataSubmissions/QualityControl.tsx b/src/content/dataSubmissions/QualityControl.tsx index 28b2a13b..1b389964 100644 --- a/src/content/dataSubmissions/QualityControl.tsx +++ b/src/content/dataSubmissions/QualityControl.tsx @@ -65,7 +65,7 @@ const columns: Column[] = [ field: "severity", }, { - label: "Validated Date", + label: "Uploaded Date", renderValue: (data) => (data?.uploadedDate ? `${FormatDate(data.uploadedDate, "MM-DD-YYYY [at] hh:mm A")}` : ""), field: "uploadedDate", default: true