feat(housekeeping): cut over administration to ase

This commit is contained in:
Simo committed 2026-08-30 20:35:22 +02:00
1 parent c9e35cf602
commit 2b8f73a91d
457 files changed
+589 -55936

No files matched your search

-55
View File
@@ -1,55 +0,0 @@
"use client";
import { useTranslations } from "next-intl";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
interface RevenueDataPoint {
label: string;
credits: number;
points: number;
}
export function RevenueChart({ data }: { data: RevenueDataPoint[] }) {
const t = useTranslations("pages.admin.analytics.economy");
const max = Math.max(
1,
...data.flatMap((point) => [point.credits, point.points]),
);
return (
<Card>
<CardHeader className="pb-2">
<CardTitle className="text-sm font-medium">
{t("catalogSpendingTitle")}
</CardTitle>
</CardHeader>
<CardContent>
<div className="space-y-3">
{data.map((point) => (
<div
key={point.label}
className="grid grid-cols-[3rem_1fr] items-center gap-2 text-xs"
>
<span>{point.label}</span>
<div className="space-y-1">
<div
className="h-2 rounded bg-[var(--admin-warning)]"
style={{
width: `${Math.max(2, (point.credits / max) * 100)}%`,
}}
title={t("creditsTooltip", { count: point.credits })}
/>
<div
className="h-2 rounded bg-[var(--admin-accent)]"
style={{
width: `${Math.max(2, (point.points / max) * 100)}%`,
}}
title={t("pointsTooltip", { count: point.points })}
/>
</div>
</div>
))}
</div>
</CardContent>
</Card>
);
}