@@ -141,46 +141,63 @@ export default function GamificationAnalytics() {
141141 ) }
142142
143143 { /* Analytics Tabs */ }
144- < Tabs defaultValue = "tiers" className = "space-y-4" >
145- < TabsList >
146- < TabsTrigger value = "tiers" >
147- < Trophy className = "h-4 w-4 mr-2" />
148- Tier Performance
149- </ TabsTrigger >
150- < TabsTrigger value = "redemptions" >
151- < Gift className = "h-4 w-4 mr-2" />
152- Redemption Analytics
153- </ TabsTrigger >
154- < TabsTrigger value = "engagement" >
155- < BarChart3 className = "h-4 w-4 mr-2" />
156- Engagement Correlation
157- </ TabsTrigger >
158- </ TabsList >
159-
160- < TabsContent value = "tiers" className = "space-y-4" >
161- < TierPerformanceChart
162- usersByTier = { usersByTier }
163- allTiers = { allTiers }
164- allUserPoints = { allUserPoints }
165- pointsLedger = { pointsLedger }
166- />
167- </ TabsContent >
168-
169- < TabsContent value = "redemptions" className = "space-y-4" >
170- < RedemptionAnalytics
171- redemptions = { allRedemptions }
172- userPoints = { allUserPoints }
173- />
174- </ TabsContent >
175-
176- < TabsContent value = "engagement" className = "space-y-4" >
177- < EngagementCorrelation
178- pointsLedger = { pointsLedger }
179- recognitions = { recognitions }
180- userPoints = { allUserPoints }
181- />
182- </ TabsContent >
183- </ Tabs >
144+ { hasData && (
145+ < Tabs defaultValue = "tiers" className = "space-y-4" >
146+ < TabsList >
147+ < TabsTrigger value = "tiers" >
148+ < Trophy className = "h-4 w-4 mr-2" />
149+ Points by Tier
150+ </ TabsTrigger >
151+ < TabsTrigger value = "redemptions" >
152+ < Gift className = "h-4 w-4 mr-2" />
153+ Redemption Analytics
154+ </ TabsTrigger >
155+ < TabsTrigger value = "engagement" >
156+ < BarChart3 className = "h-4 w-4 mr-2" />
157+ Engagement Correlation
158+ </ TabsTrigger >
159+ </ TabsList >
160+
161+ < TabsContent value = "tiers" className = "space-y-4" >
162+ { tierDistributionData . length === 0 ? (
163+ < Card className = "bg-slate-900 border-slate-800" >
164+ < CardContent className = "py-8 text-center" >
165+ < p className = "text-slate-400" > No tier distribution data available</ p >
166+ </ CardContent >
167+ </ Card >
168+ ) : (
169+ < Card className = "bg-slate-900 border-slate-800" >
170+ < CardContent className = "pt-6" >
171+ < ResponsiveContainer width = "100%" height = { 300 } >
172+ < BarChart data = { tierDistributionData } >
173+ < CartesianGrid strokeDasharray = "3 3" stroke = "#334155" />
174+ < XAxis dataKey = "tier" stroke = "#cbd5e1" />
175+ < YAxis stroke = "#cbd5e1" />
176+ < Tooltip contentStyle = { { backgroundColor : '#1e293b' , border : '1px solid #475569' , borderRadius : '8px' } } />
177+ < Bar dataKey = "points" fill = "#F59E0B" radius = { [ 8 , 8 , 0 , 0 ] } />
178+ </ BarChart >
179+ </ ResponsiveContainer >
180+ </ CardContent >
181+ </ Card >
182+ ) }
183+ </ TabsContent >
184+
185+ < TabsContent value = "redemptions" className = "space-y-4" >
186+ < RedemptionAnalytics
187+ redemptions = { safeRedemptions }
188+ userPoints = { safeUserPoints }
189+ />
190+ </ TabsContent >
191+
192+ < TabsContent value = "engagement" className = "space-y-4" >
193+ < EngagementCorrelation
194+ pointsLedger = { pointsLedger }
195+ recognitions = { recognitions }
196+ userPoints = { safeUserPoints }
197+ />
198+ </ TabsContent >
199+ </ Tabs >
200+ ) }
184201 </ div >
185202 ) ;
186203}
0 commit comments