diff --git a/src/charts/ModelDrawsComparison.jsx b/src/charts/ModelDrawsComparison.jsx index 3303aa8..6403917 100644 --- a/src/charts/ModelDrawsComparison.jsx +++ b/src/charts/ModelDrawsComparison.jsx @@ -35,9 +35,10 @@ export default function ModelDrawsComparison({ data, waves, districtName }) { }) }, [data.waves]) - const quadModels = data.quadData || {} + // Handle both cases: when quadData exists as object or is null/undefined + const quadModels = (data && data.quadData) ? data.quadData : {} // modelDraws may be null if API unavailable, handle gracefully - const modelDraws = data.modelDraws || null + const modelDraws = (data && data.modelDraws) ? data.modelDraws : null // Compute max arrests for Y-axis scaling across all quadrants and years const allArrestValues = [] diff --git a/src/charts/RateDensityRidgeline.jsx b/src/charts/RateDensityRidgeline.jsx index fd31e83..f8632e3 100644 --- a/src/charts/RateDensityRidgeline.jsx +++ b/src/charts/RateDensityRidgeline.jsx @@ -28,7 +28,7 @@ export default function RateDensityRidgeline({ quadData, rateByGroup }) { } useEffect(() => { - if (!quadData || !selectedModel) return + if (!quadData || !selectedModel || !quadData[selectedModel]) return const rows = quadData[selectedModel] || [] diff --git a/src/components/ChartPanel.jsx b/src/components/ChartPanel.jsx index 7da518d..d7cbc6b 100644 --- a/src/components/ChartPanel.jsx +++ b/src/components/ChartPanel.jsx @@ -90,7 +90,7 @@ export default function ChartPanel({ district, state }) { // Chart 4-6 use quadData (4 models × 8 groups) const chart4Data = { timeSeries: mostRecent, waves: data.waveData, modelDraws: data.modelDraws } - const chart5Data = data.quadData // all 4 quadrant model results + const chart5Data = data.quadData || {} // all 4 quadrant model results const chart6Data = { rates: rateByGroup, nationalRates: nationalRates?.rates_per_1000 || {} } return (