Add QA evidence map overlay
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { useState } from 'react'
|
||||
import { qaApi } from '../services/api'
|
||||
import type { JobRead, QaComparisonRequest, QaComparisonResult, QualityCheckRead } from '../types'
|
||||
import type { JobRead, QaComparisonRequest, QaComparisonResult, QualityCheckRead, QualityEvidenceGeoJsonResponse } from '../types'
|
||||
import { formatError } from '../lib/formatError'
|
||||
|
||||
interface QualityWorkflowOptions {
|
||||
@@ -18,6 +18,9 @@ export function useQualityWorkflow({ selectedProjectId, loadProjectData }: Quali
|
||||
const [qaError, setQaError] = useState<string | null>(null)
|
||||
const [qualityChecks, setQualityChecks] = useState<QualityCheckRead[]>([])
|
||||
const [qualityChecksError, setQualityChecksError] = useState<string | null>(null)
|
||||
const [qualityEvidenceGeoJson, setQualityEvidenceGeoJson] = useState<QualityEvidenceGeoJsonResponse | null>(null)
|
||||
const [qualityEvidenceLoading, setQualityEvidenceLoading] = useState(false)
|
||||
const [qualityEvidenceError, setQualityEvidenceError] = useState<string | null>(null)
|
||||
|
||||
const loadQualityChecks = async (projectId = selectedProjectId): Promise<QualityCheckRead[] | void> => {
|
||||
if (!projectId) {
|
||||
@@ -34,6 +37,30 @@ export function useQualityWorkflow({ selectedProjectId, loadProjectData }: Quali
|
||||
}
|
||||
}
|
||||
|
||||
const loadQualityEvidenceGeoJson = async (qualityCheckId: string, projectId = selectedProjectId): Promise<QualityEvidenceGeoJsonResponse | null> => {
|
||||
if (!projectId) {
|
||||
setQualityEvidenceError('Select a project first')
|
||||
return null
|
||||
}
|
||||
setQualityEvidenceLoading(true)
|
||||
setQualityEvidenceError(null)
|
||||
try {
|
||||
const response = await qaApi.getQualityEvidenceGeoJson(projectId, qualityCheckId)
|
||||
setQualityEvidenceGeoJson(response)
|
||||
return response
|
||||
} catch (error) {
|
||||
setQualityEvidenceError(formatError(error, 'Failed to load QA/QC evidence overlay'))
|
||||
return null
|
||||
} finally {
|
||||
setQualityEvidenceLoading(false)
|
||||
}
|
||||
}
|
||||
|
||||
const clearQualityEvidenceGeoJson = () => {
|
||||
setQualityEvidenceGeoJson(null)
|
||||
setQualityEvidenceError(null)
|
||||
}
|
||||
|
||||
const runQaComparison = async () => {
|
||||
if (!selectedProjectId) {
|
||||
setQaError('Select a project first')
|
||||
@@ -102,7 +129,12 @@ export function useQualityWorkflow({ selectedProjectId, loadProjectData }: Quali
|
||||
qaError,
|
||||
qualityChecks,
|
||||
qualityChecksError,
|
||||
qualityEvidenceGeoJson,
|
||||
qualityEvidenceLoading,
|
||||
qualityEvidenceError,
|
||||
loadQualityChecks,
|
||||
loadQualityEvidenceGeoJson,
|
||||
clearQualityEvidenceGeoJson,
|
||||
runQaComparison,
|
||||
setQaCandidateDatasetId,
|
||||
setQaReferenceDatasetId,
|
||||
|
||||
Reference in New Issue
Block a user