UNPKG

vibecode-party-starter

Version:

A Next.js starter project for vibecoding Saas apps with auth, payments, email, and more

51 lines (44 loc) 1.24 kB
import { useState } from "react" interface ImageResponse { imageUrl: string success: boolean error?: string } export function useGenerateImage() { const [error, setError] = useState<string>("") const [isLoading, setIsLoading] = useState(false) const [imageUrl, setImageUrl] = useState<string>("") const generate = async (prompt: string) => { setError("") setIsLoading(true) try { const response = await fetch("/api/ai/generate/image", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ input: prompt, userId: "demo", // Using a demo folder for the AI demo deckId: "ai-demo" // Using a fixed demo deck ID }), }) const data: ImageResponse = await response.json() if (!data.success) { throw new Error(data.error || "Failed to generate image") } setImageUrl(data.imageUrl) } catch (err) { console.error("Error generating image:", err) setError(err instanceof Error ? err.message : "Failed to generate image") } finally { setIsLoading(false) } } return { imageUrl, isLoading, error, generate, } }