holy fkn airball
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user