holy fkn airball

This commit is contained in:
NotII
2025-06-29 04:13:50 +01:00
parent e9b943a00a
commit 236a676ac5
11 changed files with 638 additions and 164 deletions

View File

@@ -2,20 +2,11 @@
import { useState, useEffect } from 'react';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
import { clientFetch } from "@/lib/api";
import { useToast } from "@/hooks/use-toast";
import { Skeleton } from "@/components/ui/skeleton";
import { TrendingUp, DollarSign } from "lucide-react";
interface RevenueData {
_id: {
year: number;
month: number;
day: number;
};
revenue: number;
orders: number;
}
import { getRevenueTrendsWithStore, type RevenueData } from "@/lib/services/analytics-service";
import { formatGBP } from "@/utils/format";
interface RevenueChartProps {
timeRange: string;
@@ -32,7 +23,7 @@ export default function RevenueChart({ timeRange }: RevenueChartProps) {
try {
setIsLoading(true);
setError(null);
const response = await clientFetch<RevenueData[]>(`/analytics/revenue-trends?period=${timeRange}`);
const response = await getRevenueTrendsWithStore(timeRange);
setData(response);
} catch (err) {
console.error('Error fetching revenue data:', err);
@@ -56,7 +47,7 @@ export default function RevenueChart({ timeRange }: RevenueChartProps) {
const formatDate = (item: RevenueData) => {
const date = new Date(item._id.year, item._id.month - 1, item._id.day);
return date.toLocaleDateString('en-US', {
return date.toLocaleDateString('en-GB', {
month: 'short',
day: 'numeric'
});
@@ -153,7 +144,7 @@ export default function RevenueChart({ timeRange }: RevenueChartProps) {
<div
className="w-full bg-primary/20 hover:bg-primary/30 transition-colors rounded-t"
style={{ height: `${height}%` }}
title={`${formatDate(item)}: $${item.revenue.toFixed(2)}`}
title={`${formatDate(item)}: ${formatGBP(item.revenue)}`}
/>
<div className="text-xs text-muted-foreground mt-1 rotate-45 origin-left">
{formatDate(item)}
@@ -167,7 +158,7 @@ export default function RevenueChart({ timeRange }: RevenueChartProps) {
<div className="grid grid-cols-3 gap-4 pt-4 border-t">
<div className="text-center">
<div className="text-2xl font-bold text-green-600">
${totalRevenue.toFixed(2)}
{formatGBP(totalRevenue)}
</div>
<div className="text-sm text-muted-foreground">Total Revenue</div>
</div>
@@ -179,7 +170,7 @@ export default function RevenueChart({ timeRange }: RevenueChartProps) {
</div>
<div className="text-center">
<div className="text-2xl font-bold text-purple-600">
${averageRevenue.toFixed(2)}
{formatGBP(averageRevenue)}
</div>
<div className="text-sm text-muted-foreground">Avg Daily Revenue</div>
</div>