From fa1828e1f431ab971f248e05a8bc30971d7a3bcb Mon Sep 17 00:00:00 2001 From: Adejumoke Adekoya Date: Thu, 24 Sep 2026 21:58:21 +0100 Subject: [PATCH] feat(analytics): geographic spread metrics and cell density distribution component --- .../analytics/CellDensityDistribution.tsx | 40 +++++++++++++++++++ .../analytics/GeographicSpreadMetrics.tsx | 39 ++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 Frontend/src/components/analytics/CellDensityDistribution.tsx create mode 100644 Frontend/src/components/analytics/GeographicSpreadMetrics.tsx diff --git a/Frontend/src/components/analytics/CellDensityDistribution.tsx b/Frontend/src/components/analytics/CellDensityDistribution.tsx new file mode 100644 index 00000000..d7845a70 --- /dev/null +++ b/Frontend/src/components/analytics/CellDensityDistribution.tsx @@ -0,0 +1,40 @@ +import React from 'react'; + +export interface DensityBin { + range: string; + cellCount: number; +} + +export interface CellDensityDistributionProps { + bins?: DensityBin[]; +} + +export const CellDensityDistribution: React.FC = ({ + bins = [], +}) => { + return ( +
+

+ Geohash Cell Density Distribution +

+
+ {bins.map((bin, i) => ( +
+ {bin.range} +
+
+
+ + {bin.cellCount} + +
+ ))} +
+
+ ); +}; + +export default CellDensityDistribution; diff --git a/Frontend/src/components/analytics/GeographicSpreadMetrics.tsx b/Frontend/src/components/analytics/GeographicSpreadMetrics.tsx new file mode 100644 index 00000000..03beb981 --- /dev/null +++ b/Frontend/src/components/analytics/GeographicSpreadMetrics.tsx @@ -0,0 +1,39 @@ +import React from 'react'; + +export interface SpreadMetrics { + totalAreaKm2: number; + dispersionRadiusKm: number; + activeBoundingBox: string; +} + +export interface GeographicSpreadMetricsProps { + metrics?: Partial; +} + +export const GeographicSpreadMetrics: React.FC = ({ + metrics = {}, +}) => { + return ( +
+

+ Geographic Spread Metrics +

+
+
+ Coverage Area + + {metrics.totalAreaKm2 ?? 0} km² + +
+
+ Dispersion Radius + + {metrics.dispersionRadiusKm ?? 0} km + +
+
+
+ ); +}; + +export default GeographicSpreadMetrics;