"use client" import {Loader2} from "lucide-react" import {Badge} from "@/components/ui/badge" import {Button} from "@/components/ui/button" import {CodeBlock} from "@/components/ui/code-block" import {Sheet, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle,} from "@/components/ui/sheet" import type {ConfigPreviewResult} from "@/lib/services/openflare" interface PreviewSheetProps { open: boolean onOpenChange: (open: boolean) => void preview: ConfigPreviewResult | null loading: boolean error: string | null publishing: boolean canPublish: boolean onPublish: () => void } export function PreviewSheet({ open, onOpenChange, preview, loading, error, publishing, canPublish, onPublish, }: PreviewSheetProps) { return ( 发布预览 查看待发布配置的渲染结果与支持文件。
{loading ? (
正在加载预览...
) : error ? (

{error}

) : preview ? (
规则 {preview.route_count} 条 网站 {preview.website_count} 个 {preview.checksum.slice(0, 16)}...

主配置

路由配置

{preview.support_files.length > 0 ? (

支持文件 ({preview.support_files.length})

{preview.support_files.map((file) => (
{file.path}
))}
) : (

当前发布不需要额外支持文件。

)} {!canPublish ? (

当前规则与已激活版本一致,无法重复发布。

) : null}
) : null}
) }