Analytics

This commit is contained in:
Timo Knuth
2025-12-15 20:35:50 +01:00
parent 09ebcf235d
commit f1d1f4291b
5 changed files with 175 additions and 31 deletions

View File

@@ -219,8 +219,14 @@ export default function AnalyticsPage() {
<p className="text-2xl font-bold text-gray-900">
{analyticsData?.summary.totalScans.toLocaleString() || '0'}
</p>
<p className={`text-sm mt-2 ${analyticsData?.summary.totalScans > 0 ? 'text-green-600' : 'text-gray-500'}`}>
{analyticsData?.summary.totalScans > 0 ? '+12.5%' : 'No data'} from last period
<p className={`text-sm mt-2 ${
analyticsData?.summary.scansTrend?.trend === 'up' ? 'text-green-600' :
analyticsData?.summary.scansTrend?.trend === 'down' ? 'text-red-600' :
'text-gray-500'
}`}>
{analyticsData?.summary.scansTrend
? `${analyticsData.summary.scansTrend.isNegative ? '-' : '+'}${analyticsData.summary.scansTrend.percentage}%${analyticsData.summary.scansTrend.isNew ? ' (new)' : ''} from last ${analyticsData.summary.comparisonPeriod || 'period'}`
: 'No data'}
</p>
</CardContent>
</Card>
@@ -231,8 +237,14 @@ export default function AnalyticsPage() {
<p className="text-2xl font-bold text-gray-900">
{analyticsData?.summary.avgScansPerQR || '0'}
</p>
<p className={`text-sm mt-2 ${analyticsData?.summary.avgScansPerQR > 0 ? 'text-green-600' : 'text-gray-500'}`}>
{analyticsData?.summary.avgScansPerQR > 0 ? '+8.3%' : 'No data'} from last period
<p className={`text-sm mt-2 ${
analyticsData?.summary.avgScansTrend?.trend === 'up' ? 'text-green-600' :
analyticsData?.summary.avgScansTrend?.trend === 'down' ? 'text-red-600' :
'text-gray-500'
}`}>
{analyticsData?.summary.avgScansTrend
? `${analyticsData.summary.avgScansTrend.isNegative ? '-' : '+'}${analyticsData.summary.avgScansTrend.percentage}%${analyticsData.summary.avgScansTrend.isNew ? ' (new)' : ''} from last ${analyticsData.summary.comparisonPeriod || 'period'}`
: 'No data'}
</p>
</CardContent>
</Card>
@@ -349,7 +361,7 @@ export default function AnalyticsPage() {
country.trend === 'down' ? 'destructive' :
'default'
}>
{country.trend === 'up' ? '↑' : country.trend === 'down' ? '↓' : '→'} {country.trendPercentage}%
{country.trend === 'up' ? '↑' : country.trend === 'down' ? '↓' : '→'} {country.trendPercentage}%{country.isNew ? ' (new)' : ''}
</Badge>
</td>
</tr>
@@ -398,7 +410,7 @@ export default function AnalyticsPage() {
qr.trend === 'down' ? 'destructive' :
'default'
}>
{qr.trend === 'up' ? '↑' : qr.trend === 'down' ? '↓' : '→'} {qr.trendPercentage}%
{qr.trend === 'up' ? '↑' : qr.trend === 'down' ? '↓' : '→'} {qr.trendPercentage}%{qr.isNew ? ' (new)' : ''}
</Badge>
</td>
</tr>