diff --git a/servers/fastapi/chroma/chroma.sqlite3 b/servers/fastapi/chroma/chroma.sqlite3 index 5f337926..c35454c7 100644 Binary files a/servers/fastapi/chroma/chroma.sqlite3 and b/servers/fastapi/chroma/chroma.sqlite3 differ diff --git a/servers/nextjs/app/(presentation-generator)/components/ImageEditor.tsx b/servers/nextjs/app/(presentation-generator)/components/ImageEditor.tsx index da85c01a..820cf60c 100644 --- a/servers/nextjs/app/(presentation-generator)/components/ImageEditor.tsx +++ b/servers/nextjs/app/(presentation-generator)/components/ImageEditor.tsx @@ -9,10 +9,7 @@ import { import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Button } from "@/components/ui/button"; import { Textarea } from "@/components/ui/textarea"; -import { - Wand2, - Upload, -} from "lucide-react"; +import { Wand2, Upload } from "lucide-react"; import { cn } from "@/lib/utils"; import { PresentationGenerationApi } from "../services/api/presentation-generation"; import { Skeleton } from "@/components/ui/skeleton"; @@ -38,11 +35,12 @@ const ImageEditor = ({ onClose, onFocusPointClick, onImageChange, - }: ImageEditorProps) => { // State management const [previewImages, setPreviewImages] = useState(initialImage); - const [previousGeneratedImages, setPreviousGeneratedImages] = useState([]); + const [previousGeneratedImages, setPreviousGeneratedImages] = useState< + PreviousGeneratedImagesResponse[] + >([]); const [prompt, setPrompt] = useState(""); const [isGenerating, setIsGenerating] = useState(false); const [error, setError] = useState(null); @@ -65,7 +63,7 @@ const ImageEditor = ({ (properties && properties[imageIdx] && properties[imageIdx].initialObjectFit) || - "cover" + "cover" ); // Refs @@ -75,7 +73,6 @@ const ImageEditor = ({ setPreviewImages(initialImage); }, [initialImage]); - useEffect(() => { if (isOpen && !previousGeneratedImages.length) { getPreviousGeneratedImage(); @@ -91,26 +88,25 @@ const ImageEditor = ({ }, 300); // Match the Sheet animation duration }; - const getPreviousGeneratedImage = async () => { try { - const response = await PresentationGenerationApi.getPreviousGeneratedImages(); + const response = + await PresentationGenerationApi.getPreviousGeneratedImages(); setPreviousGeneratedImages(response); } catch (error: any) { toast.error("Failed to get previous generated images. Please try again."); console.error("error in getting previous generated images", error); - setError(error.message || "Failed to get previous generated images. Please try again."); + setError( + error.message || + "Failed to get previous generated images. Please try again." + ); } - } - - + }; /** * Handles image selection and calls the parent callback */ const handleImageChange = (newImage: string) => { - - if (onImageChange) { onImageChange(newImage, promptContent); setPreviewImages(newImage); @@ -230,17 +226,17 @@ const ImageEditor = ({ setUploadError(null); const formData = new FormData(); - formData.append('file', file); + formData.append("file", file); - const response = await fetch('/api/upload-image', { - method: 'POST', + const response = await fetch("/api/upload-image", { + method: "POST", body: formData, }); const result = await response.json(); if (!response.ok) { - throw new Error(result.error || 'Upload failed'); + throw new Error(result.error || "Upload failed"); } setUploadedImageUrl(result.filePath); @@ -254,8 +250,6 @@ const ImageEditor = ({ return (
- - handleClose()}> Upload - Edit + + Edit + {/* Generate Tab */} @@ -287,7 +283,9 @@ const ImageEditor = ({
-

Image Description

+

+ Image Description +