/**
* 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
Apply Optimizations
{/* 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.
)
}