"use client" import { Bookmark, Copy, Download, Edit2, FileText, Plus, Search, Trash2, Upload, } from "lucide-react" import { useParams } from "next/navigation" import { useCallback, useEffect, useRef, useState } from "react" import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from "@/components/ui/alert-dialog" import { useDictionary } from "@/hooks/use-dictionary" import { formatRelativeTime } from "@/lib/relative-time" import { deleteTemplate, duplicateTemplate, exportTemplates, getAllTemplates, importTemplates, incrementRunCount, searchTemplates, type Template, updateTemplate, validateImportData, } from "@/lib/template-storage" import { TemplateFormDialog } from "./TemplateFormDialog" interface TemplatePanelProps { /** Whether it was sent */ onSendTemplate: (template: Template) => Promise currentInput?: string } export function TemplatePanel({ onSendTemplate, currentInput = "", }: TemplatePanelProps) { const dict = useDictionary() const params = useParams<{ lang: string }>() const [templates, setTemplates] = useState([]) const [loading, setLoading] = useState(true) const [createDialogOpen, setCreateDialogOpen] = useState(false) const [editDialogOpen, setEditDialogOpen] = useState(false) const [templateToEdit, setTemplateToEdit] = useState