import { TriangleAlert } from 'lucide-react'; import { ErrorInline } from '@/components/layout/error'; import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; import { type PagesGitHubReleaseSource, type PagesRemoteURLSource, type PagesSourceRevision, } from '@/lib/services/openflare'; import { formatDateTime } from '@/lib/utils'; function revisionSummary(revision?: PagesSourceRevision) { if (!revision) return '尚无记录'; return `${revision.label} · ${revision.revision.slice(0, 12)}`; } export function RemoteSourceDetails({ source, }: { source: PagesRemoteURLSource; }) { return (
脱敏地址 {source.display_url}
网络策略 {source.remote_network_policy === 'trusted_internal' ? '受信内网模式' : '公网安全模式'}
最近同步 {source.last_synced_at ? formatDateTime(source.last_synced_at) : '尚未同步'}
已应用 revision {revisionSummary(source.last_applied)}
{source.last_error ? (
) : null}
); } export function GitHubSourceDetails({ source, }: { source: PagesGitHubReleaseSource; }) { const attentionRevision = source.sync_status === 'attention' ? source.last_seen : undefined; return (
{attentionRevision ? ( Release Asset 发生变化,需要显式确认

当前远端 revision 与已发布内容不一致。请核对版本和资源后,再确认发布这一精确 revision。

{attentionRevision.revision}
) : null}
GitHub 仓库 {source.github_repository}
Release 选择 {source.release_selector === 'latest' ? '最新 Release' : `固定 Tag · ${source.release_tag ?? '未提供'}`}
Release Asset {source.asset_name}
远端已发现 {revisionSummary(source.last_seen)}
当前已应用 {revisionSummary(source.last_applied)}
最近检查 {source.last_checked_at ? formatDateTime(source.last_checked_at) : '尚未检查'}
最近同步 {source.last_synced_at ? formatDateTime(source.last_synced_at) : '尚未同步'}
{source.last_error ? (
) : null}
); }