"use client"; import { useState } from "react"; import { ImageIcon, RefreshCw } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Textarea } from "@/components/ui/textarea"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Label } from "@/components/ui/label"; import { Switch } from "@/components/ui/switch"; import { toast } from "sonner"; import { apiFetch, type Pet } from "./types"; interface Props { pets: Pet[]; includePetInContent: boolean; setIncludePetInContent: (v: boolean) => void; onGenerated: () => void; } export default function ImagesTab({ pets, includePetInContent, setIncludePetInContent, onGenerated }: Props) { const [userPrompt, setUserPrompt] = useState(""); const [imageStyle, setImageStyle] = useState("realistic"); const [imagePlatform, setImagePlatform] = useState("general"); const [imageLoading, setImageLoading] = useState(false); const handleGenerateImage = async () => { if (!userPrompt.trim()) { toast.error("Describe la imagen"); return; } setImageLoading(true); try { const result = await apiFetch("/generate/image", { method: "POST", body: JSON.stringify({ prompt: userPrompt, platform: imagePlatform, style: imageStyle, includePet: includePetInContent, petId: pets[0]?.id }), }); if (result.success) { toast.success("Imagen generada"); onGenerated(); } else toast.error(result.error); } catch { toast.error("Error"); } finally { setImageLoading(false); } }; return ( Generar Imágenes