"use client" import { Bookmark, Plus } from "lucide-react" import { useEffect, useState } from "react" import { Button } from "@/components/ui/button" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Switch } from "@/components/ui/switch" import { Textarea } from "@/components/ui/textarea" import { useDictionary } from "@/hooks/use-dictionary" import { createTemplate, type TemplateCreateInput, } from "@/lib/template-storage" interface TemplateCreateDialogProps { open: boolean onOpenChange: (open: boolean) => void onSuccess: () => void initialPrompt?: string } export function TemplateCreateDialog({ open, onOpenChange, onSuccess, initialPrompt = "", }: TemplateCreateDialogProps) { const dict = useDictionary() const [title, setTitle] = useState("") const [description, setDescription] = useState("") const [prompt, setPrompt] = useState("") const [pinned, setPinned] = useState(false) const [isSubmitting, setIsSubmitting] = useState(false) const [error, setError] = useState(null) // Reset form when dialog opens with the latest initialPrompt useEffect(() => { if (open) { setTitle("") setDescription("") setPrompt(initialPrompt) setPinned(false) setError(null) } }, [open, initialPrompt]) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() const trimmedPrompt = prompt.trim() if (!trimmedPrompt) { setError(dict.templates.promptRequired) return } setIsSubmitting(true) setError(null) try { const input: TemplateCreateInput = { prompt: trimmedPrompt, title: title.trim() || undefined, description: description.trim() || undefined, pinned, } const template = await createTemplate(input) if (template) { onSuccess() onOpenChange(false) } else { setError(dict.templates.createFailed) } } catch (err) { console.error("Failed to create template:", err) setError(dict.templates.createFailed) } finally { setIsSubmitting(false) } } return (
{dict.templates.createTitle} {dict.templates.createDescription}
{/* Prompt field - required */}