Skip to content

Commit

Permalink
fix(app): Separate ValidationResults into loading and display components
Browse files Browse the repository at this point in the history
  • Loading branch information
nellh committed Feb 5, 2025
1 parent 83a1f42 commit 3729f05
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 19 deletions.
4 changes: 2 additions & 2 deletions packages/openneuro-app/src/scripts/uploader/upload-issues.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from "react"
import pluralize from "pluralize"
import { Loading } from "@openneuro/components/loading"
import { ValidationResults } from "../validation/validation-results"
import { ValidationResultsDisplay } from "../validation/validation-results"

Check warning on line 4 in packages/openneuro-app/src/scripts/uploader/upload-issues.tsx

View check run for this annotation

Codecov / codecov/patch

packages/openneuro-app/src/scripts/uploader/upload-issues.tsx#L4

Added line #L4 was not covered by tests
import UploaderContext from "./uploader-context.js"
import { validation } from "../workers/schema.js"
import type { ValidationResult } from "@bids/validator/main"
Expand Down Expand Up @@ -106,7 +106,7 @@ class UploadValidator
next={this.props.next}
reset={this.props.reset}
/>
<ValidationResults
<ValidationResultsDisplay

Check warning on line 109 in packages/openneuro-app/src/scripts/uploader/upload-issues.tsx

View check run for this annotation

Codecov / codecov/patch

packages/openneuro-app/src/scripts/uploader/upload-issues.tsx#L109

Added line #L109 was not covered by tests
issues={this.state.issues}
/>
<span className="bids-link">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { Issues } from "./validation-issues"
import { RadioGroup } from "@openneuro/components/radio"
import { Loading } from "@openneuro/components/loading"
import styled from "@emotion/styled"
import type { DatasetIssues } from "@bids/validator/issues"
import { useValidationResults } from "./validation-results-query"

const RadioSpan = styled.span`
Expand All @@ -25,24 +26,14 @@ interface ValidationResultsProps {

type ValidationGroupBy = "code" | "location"

/**
* Display ValidationResults with collapsing panels
*/
export function ValidationResults(
{ datasetId, version }: ValidationResultsProps,
interface ValidationResultsDisplayProps {
issues: DatasetIssues
}

export function ValidationResultsDisplay(
{ issues }: ValidationResultsDisplayProps,

Check warning on line 34 in packages/openneuro-app/src/scripts/validation/validation-results.tsx

View check run for this annotation

Codecov / codecov/patch

packages/openneuro-app/src/scripts/validation/validation-results.tsx#L34

Added line #L34 was not covered by tests
) {
const { issues, loading } = useValidationResults(datasetId, version)
const [groupBy, setGroupBy] = React.useState<ValidationGroupBy>("code")

if (loading) {
return (
<>
<Loading />
<span className="message">Loading validation results...</span>
</>
)
}

const groupedIssues = issues.groupBy("severity")
const errors = groupedIssues.get("error")
const warnings = groupedIssues.get("warning")
Expand Down Expand Up @@ -106,4 +97,24 @@ export function ValidationResults(
)
}

/**
* Display ValidationResults with collapsing panels
*/
export function ValidationResults(
{ datasetId, version }: ValidationResultsProps,
) {
const { issues, loading } = useValidationResults(datasetId, version)

if (loading) {
return (
<>
<Loading />
<span className="message">Loading validation results...</span>
</>
)
} else {
return <ValidationResultsDisplay issues={issues} />
}
}

Check warning on line 118 in packages/openneuro-app/src/scripts/validation/validation-results.tsx

View check run for this annotation

Codecov / codecov/patch

packages/openneuro-app/src/scripts/validation/validation-results.tsx#L104-L118

Added lines #L104 - L118 were not covered by tests

export default ValidationResults
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ interface WarningsProps {
}

const Warnings = ({ datasetId, version, warnings }: WarningsProps) => (
<ValidationPanel heading={warningHeader(warnings.size)}>
<ValidationPanel heading={warningHeader(warnings)}>
<div>
<span className="message error fade-in">
We found{" "}
Expand Down

0 comments on commit 3729f05

Please sign in to comment.