fix(frontend): 补齐 analysis 构建依赖与共享组件搬迁

补 commit hooks/图表组件、路由与 i18n domains、logs metrics API;
StatCard/TimeRangePicker/ingress-access-log 抽到共享路径,干净 checkout 可编过。
This commit is contained in:
Codex committed 2026-10-28 22:00:30 +08:00
1 parent f993d5b420
commit 11d0fff764
22 files changed
+552 -313

No files matched your search

@@ -1,52 +0,0 @@
import { memo } from 'react'
import type { LucideIcon } from 'lucide-react'
import { Card, CardContent } from '@/components/ui/card'
interface StatCardProps {
label: string
value: string | number
icon: LucideIcon
iconColor: string
iconBg: string
sub?: {
icon: LucideIcon
color: string
textColor: string
text: string
}
}
/** 指标卡 — 数字 + 图标 + 副指标(仪表盘通用件) */
export const StatCard = memo(function StatCard({
label,
value,
icon: Icon,
iconColor,
iconBg,
sub,
}: StatCardProps) {
const SubIcon = sub?.icon
return (
<Card className="border-border">
<CardContent className="p-6">
<div className="flex items-center justify-between">
<div>
<p className="text-sm text-muted-foreground">{label}</p>
<p className="text-3xl font-bold text-foreground mt-1 tabular-nums">
{value}
</p>
</div>
<div className={`w-12 h-12 rounded-xl ${iconBg} flex items-center justify-center`}>
<Icon className={`w-6 h-6 ${iconColor}`} />
</div>
</div>
{sub && SubIcon && (
<div className="flex items-center gap-2 mt-4">
<SubIcon className={`w-4 h-4 ${sub.color}`} />
<span className={`text-xs ${sub.textColor}`}>{sub.text}</span>
</div>
)}
</CardContent>
</Card>
)
})
+1 -1
View File
@@ -10,7 +10,7 @@ import { PageContainer } from '@/components/PageContainer'
import { LoadingSpinner } from '@/components/LoadingSpinner'
import { ErrorState } from '@/components/ErrorState'
import { useDashboardStats } from './hooks/useDashboardStats'
import { StatCard } from './components/StatCard'
import { StatCard } from '@/components/StatCard'
import { RecentDeploymentsCard } from './components/RecentDeploymentsCard'
import { ResourceListCard } from './components/ResourceListCard'
import type { DashboardStats } from '@/types'