'use client'; import { CalendarClock, Sparkles, X } from 'lucide-react'; import type { XiaobaoVersionRisk } from '@/lib/xiaobao-risk'; import { formatDateTime } from '@/lib/format'; import { formatRemainingWork } from '@/lib/xiaobao-warning-view'; export function XiaobaoWarningDrawer({ risk, onClose, onNavigate, }: { risk: XiaobaoVersionRisk; onClose: () => void; onNavigate: () => void; }) { const evidence = risk.dailyEvidence; const evidenceItems = [ ...(evidence?.todayDeliveries ?? []), ...(evidence?.todayProgress ?? []), ...(evidence?.todayRisks ?? []), ...(evidence?.progressNotes ?? []), ]; return (
{risk.productName ?? '-'} / {risk.projectName ?? '-'} / {risk.versionName}

小宝预警详情

规则预警会保留事实证据,AI 解读自动补充

0 ? `${risk.delayDays}天` : '0天'} />

期望发版: {formatDateTime(risk.expectedReleaseDate)}

预测可发: {formatDateTime(risk.forecastReleaseDate)}

{risk.trend.summary}

{risk.reasons.length === 0 ? : risk.reasons.map((reason) => (

{reason.title}

{reason.severity}

{reason.detail}

))}
{evidenceItems.length === 0 ? : evidenceItems.map((item) => (

{item.title}

{item.summary}

{formatDateTime(item.occurredAt)}

))}
{risk.silentRisks.length === 0 ? : risk.silentRisks.map((item, index) => (

{item.title}

{item.detail}

))}
{risk.aiInsight ? (

{risk.aiInsight.summary}

{risk.aiInsight.forecast}

{risk.aiInsight.suggestedActions.map((action) => (
{action}
))}
) : ( )}
); } function Summary({ label, value }: { label: string; value: string }) { return (

{label}

{value}

); } function Section({ title, children }: { title: string; children: React.ReactNode }) { return (

{title}

{children}
); } function Empty({ text }: { text: string }) { return (
{text}
); }