mirror of
https://github.com/christianvidalwolf-prog/CrazeAnalytix.git
synced 2026-08-03 11:05:23 +02:00
fix: account for null numeric values from supabase in metric cards to uncrash detail view
This commit is contained in:
@@ -194,7 +194,7 @@ const ExperimentDetail: React.FC<ExperimentDetailProps> = ({ experimentId, onClo
|
||||
) : experiment ? (
|
||||
<div className="space-y-6">
|
||||
{/* Performance Cards */}
|
||||
{(experiment.experiment_units !== undefined) && (
|
||||
{(experiment.experiment_units != null) && (
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
|
||||
{experiment.type === 'pricing' && (
|
||||
<>
|
||||
@@ -223,10 +223,10 @@ const ExperimentDetail: React.FC<ExperimentDetailProps> = ({ experimentId, onClo
|
||||
|
||||
<PerformanceCard
|
||||
label="Primary Target Lift"
|
||||
value={experiment.actual_lift_percent !== undefined
|
||||
value={experiment.actual_lift_percent != null
|
||||
? `${experiment.actual_lift_percent >= 0 ? '+' : ''}${experiment.actual_lift_percent}%`
|
||||
: '—'}
|
||||
color={experiment.actual_lift_percent !== undefined && experiment.actual_lift_percent >= 0 ? 'emerald' : 'red'}
|
||||
color={experiment.actual_lift_percent != null && experiment.actual_lift_percent >= 0 ? 'emerald' : 'red'}
|
||||
/>
|
||||
<PerformanceCard
|
||||
label="Significance"
|
||||
@@ -244,7 +244,7 @@ const ExperimentDetail: React.FC<ExperimentDetailProps> = ({ experimentId, onClo
|
||||
onClick={handleCalculateResults}
|
||||
className="w-full py-3 bg-indigo-600/20 border border-indigo-500/30 hover:bg-indigo-600/30 text-indigo-400 rounded-xl font-medium transition-colors"
|
||||
>
|
||||
{experiment.experiment_units === undefined ? '📊 Calculate Experiment Results' : '🔄 Refresh Results Data'}
|
||||
{experiment.experiment_units == null ? '📊 Calculate Experiment Results' : '🔄 Refresh Results Data'}
|
||||
</button>
|
||||
)}
|
||||
|
||||
@@ -551,7 +551,7 @@ const MetricDeltaCard: React.FC<{
|
||||
format?: 'number' | 'currency' | 'percent';
|
||||
invertColors?: boolean;
|
||||
}> = ({ title, baseline, experimentVal, format = 'number', invertColors = false }) => {
|
||||
if (baseline === undefined || experimentVal === undefined) return null;
|
||||
if (baseline == null || experimentVal == null) return null;
|
||||
const delta = baseline > 0 ? ((experimentVal - baseline) / baseline) * 100 : 0;
|
||||
|
||||
const isPositive = invertColors ? delta <= 0 : delta >= 0;
|
||||
|
||||
Reference in New Issue
Block a user