"use client"; import { useState } from "react"; import Button from "@/components/ui/Button"; import Badge from "@/components/ui/Badge"; import TemplateEditForm from "./TemplateEditForm"; export default function TemplateList({ templates, onTemplateDeleted, onTemplateUpdated }) { const [deletingId, setDeletingId] = useState(null); const [editingId, setEditingId] = useState(null); const handleDelete = async (templateId) => { if (!confirm("Czy na pewno chcesz usunąć ten szablon?")) { return; } setDeletingId(templateId); try { const response = await fetch(`/api/templates/${templateId}`, { method: "DELETE", }); if (response.ok) { onTemplateDeleted(templateId); } else { alert("Błąd podczas usuwania szablonu"); } } catch (error) { console.error("Delete error:", error); alert("Błąd podczas usuwania szablonu"); } finally { setDeletingId(null); } }; const handleEdit = (templateId) => { setEditingId(templateId); }; const handleEditCancel = () => { setEditingId(null); }; const handleTemplateUpdated = (updatedTemplate) => { onTemplateUpdated(updatedTemplate); setEditingId(null); }; const formatFileSize = (bytes) => { if (bytes === 0) return "0 Bytes"; const k = 1024; const sizes = ["Bytes", "KB", "MB", "GB"]; const i = Math.floor(Math.log(bytes) / Math.log(k)); return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i]; }; const formatDate = (dateString) => { return new Date(dateString).toLocaleDateString("pl-PL", { year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", }); }; if (templates.length === 0) { return (
Dodaj swój pierwszy szablon dokumentów DOCX.
{template.description}
)}