Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

CRDCDH-594 Submit Using Validation Status #253

Closed
wants to merge 6 commits into from
18 changes: 13 additions & 5 deletions src/content/dataSubmissions/DataSubmission.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -318,8 +318,17 @@ const DataSubmission = () => {
const tableRef = useRef<TableMethods>(null);
const isValidTab = tab && Object.values(URLTabs).includes(tab);
const disableSubmit = useMemo(
() => !data?.submissionStats?.stats?.length || data?.submissionStats?.stats.some((stat) => stat.new > 0 || (user.role !== "Admin" && stat.error > 0)),
[data?.submissionStats, user]
() => {
if (!data?.getSubmission?._id) {
return true;
}
const isMissingMetadata = !data.getSubmission.metadataValidationStatus;
const isValidating = data.getSubmission.metadataValidationStatus === "Validating" || data.getSubmission.fileValidationStatus === "Validating";
const hasNew = data.getSubmission.metadataValidationStatus === "New" || data.getSubmission.fileValidationStatus === "New";
const hasError = data.getSubmission.metadataValidationStatus === "Error" || data.getSubmission.fileValidationStatus === "Error";
return isValidating || isMissingMetadata || hasNew || (user?.role !== "Admin" && hasError);
},
[data?.getSubmission, user]
);

const [listBatches] = useLazyQuery<ListBatchesResp>(LIST_BATCHES, {
Expand Down Expand Up @@ -401,9 +410,8 @@ const DataSubmission = () => {
setChangesAlert({ message, severity });
setTimeout(() => setChangesAlert(null), 10000);

const preInProgressStatuses: SubmissionStatus[] = ["New", "Withdrawn", "Rejected"];
// createBatch will update the status to 'In Progress'
if (preInProgressStatuses.includes(data?.getSubmission?.status)) {
const refreshStatuses: SubmissionStatus[] = ["New", "Withdrawn", "Rejected", "In Progress"];
if (refreshStatuses.includes(data?.getSubmission?.status)) {
await getSubmission();
}
};
Expand Down