/** * Suggestions component for Smart Montage Planner * Displays AI-generated recommendations for improving the montage plan */ import { AlertTriangle, CheckCircle, Info, Lightbulb } from "lucide-react" import { Alert, AlertDescription } from "@/components/ui/alert" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { useMontagePlanner } from "../../hooks/use-montage-planner" import { usePlanGenerator } from "../../hooks/use-plan-generator" export function Suggestions() { const { improvementSuggestions, fragmentUsage } = usePlanGenerator() const { optimizePlan, isOptimizing } = useMontagePlanner() const getSuggestionIcon = (suggestion: string) => { if (suggestion.toLowerCase().includes("quality")) { return } if (suggestion.toLowerCase().includes("add") || suggestion.toLowerCase().includes("more")) { return } return } const getSuggestionVariant = (suggestion: string): "default" | "destructive" => { if (suggestion.toLowerCase().includes("quality") || suggestion.toLowerCase().includes("replace")) { return "destructive" } return "default" } return (

Suggestions & Insights

{/* Improvement Suggestions */} Improvement Suggestions Recommendations to enhance your montage {improvementSuggestions.length > 0 ? (
{improvementSuggestions.map((suggestion, index) => ( {getSuggestionIcon(suggestion)} {suggestion} ))}
) : ( Your montage plan looks great! No major improvements needed. )}
{/* Fragment Usage Stats */} Fragment Usage How your content is being utilized
Total Fragments {fragmentUsage.totalFragments}
Used Fragments {fragmentUsage.usedFragments}
Unused Fragments {fragmentUsage.unusedFragments.length}
Multi-use Fragments {fragmentUsage.multiUseFragments.length}
{fragmentUsage.unusedFragments.length > 0 && (

Top Unused Fragments

{fragmentUsage.unusedFragments.slice(0, 3).map((fragment: any) => (
• {fragment.videoId} ({fragment.startTime.toFixed(1)}s - Score:{" "} {fragment.score.totalScore.toFixed(0)})
))} {fragmentUsage.unusedFragments.length > 3 && (

...and {fragmentUsage.unusedFragments.length - 3} more

)}
)}
{/* Style-specific Tips */} Style Tips Recommendations based on your selected montage style
Tip: For dynamic action montages, consider adding more quick cuts during high-energy moments to maintain viewer engagement. Tip: Sync your cuts with music beats for a more professional and engaging result.
) }