1
0
Fork 0
polaris-task-force/src/components/frontend/dashboard/QuickStats.tsx
Z8MB1E 25c088aebf feat: add operations dashboard with mission briefing and stats
- Redesign homepage as authenticated operations dashboard
- Add ProfileSummary, MissionBriefing, RecentEvents, QuickStats components
- Add UpcomingMissions and ActiveCampaigns sidebar widgets
- Redirect /dashboard to / (homepage is now the dashboard)
- Show welcome screen with login link for unauthenticated users
2026-07-31 20:01:50 -04:00

79 lines
2 KiB
TypeScript

import {
Item,
ItemContent,
ItemDescription,
ItemMedia,
ItemTitle,
} from "@/components/ui/item";
import {
Building2Icon,
CrosshairIcon,
ShieldIcon,
UsersIcon,
} from "lucide-react";
interface QuickStatsProps {
activeCampaigns: number;
totalMissions: number;
totalStructures: number;
totalFactions: number;
totalMembers: number;
}
export function QuickStats({
activeCampaigns,
totalMissions,
totalStructures,
totalFactions,
totalMembers,
}: QuickStatsProps) {
return (
<div className="grid grid-cols-2 md:grid-cols-5 gap-3">
<Item variant="muted" size="sm">
<ItemMedia variant="icon">
<CrosshairIcon />
</ItemMedia>
<ItemContent>
<ItemTitle>Active Campaigns</ItemTitle>
<ItemDescription>{activeCampaigns}</ItemDescription>
</ItemContent>
</Item>
<Item variant="muted" size="sm">
<ItemMedia variant="icon">
<CrosshairIcon />
</ItemMedia>
<ItemContent>
<ItemTitle>Total Missions</ItemTitle>
<ItemDescription>{totalMissions}</ItemDescription>
</ItemContent>
</Item>
<Item variant="muted" size="sm">
<ItemMedia variant="icon">
<Building2Icon />
</ItemMedia>
<ItemContent>
<ItemTitle>Structures</ItemTitle>
<ItemDescription>{totalStructures}</ItemDescription>
</ItemContent>
</Item>
<Item variant="muted" size="sm">
<ItemMedia variant="icon">
<ShieldIcon />
</ItemMedia>
<ItemContent>
<ItemTitle>Factions</ItemTitle>
<ItemDescription>{totalFactions}</ItemDescription>
</ItemContent>
</Item>
<Item variant="muted" size="sm">
<ItemMedia variant="icon">
<UsersIcon />
</ItemMedia>
<ItemContent>
<ItemTitle>Operators</ItemTitle>
<ItemDescription>{totalMembers}</ItemDescription>
</ItemContent>
</Item>
</div>
);
}