"use client"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Badge } from "@/components/ui/badge"; import { Crown, Lock, Sparkles, BarChart3, Brain, Zap, } from "lucide-react"; interface UpgradePromptProps { trigger?: React.ReactNode; feature?: string; description?: string; variant?: "inline" | "dialog" | "badge"; className?: string; } const PRO_FEATURES = [ { icon: BarChart3, title: "完整6维度诊断", description: "解锁结构化数据、语义一致性、技术可访问性3个高级维度", }, { icon: Brain, title: "深度竞品分析", description: "详细对比竞品在各维度的表现,发现差异化机会", }, { icon: Zap, title: "AI优化方案", description: "基于诊断结果自动生成可执行的GEO优化建议", }, { icon: Sparkles, title: "持续监控", description: "每日自动检测品牌GEO健康分变化趋势", }, ]; export function UpgradePrompt({ trigger, feature = "此功能", description, variant = "inline", className = "", }: UpgradePromptProps) { const [open, setOpen] = useState(false); if (variant === "badge") { return ( Pro setOpen(false)} /> ); } if (variant === "dialog") { return ( {trigger || ( )} setOpen(false)} /> ); } return (
{feature} Pro

{description || `升级Pro版即可解锁${feature}功能`}

setOpen(false)} />
); } function UpgradeDialogContent({ feature, description, onClose, }: { feature: string; description?: string; onClose: () => void; }) { return ( <> 升级到Pro版 {description || `解锁${feature}等全部高级功能`}
{PRO_FEATURES.map((feat) => { const Icon = feat.icon; return (

{feat.title}

{feat.description}

); })}
); } export function UpgradeActionBadge({ className = "" }: { className?: string }) { return ( Pro ); } export function PaidActionOverlay({ children, isPaidAction, onUpgradeClick, }: { children: React.ReactNode; isPaidAction: boolean; onUpgradeClick?: () => void; }) { if (!isPaidAction) return <>{children}; return (
{children}
); }