"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 (

Brak szablonów

Dodaj swój pierwszy szablon dokumentów DOCX.

); } return (

Dostępne szablony ({templates.length})

{templates.map((template) => (
{editingId === template.template_id ? (

Edytuj szablon: {template.template_name}

) : (

{template.template_name}

Aktywny
{template.description && (

{template.description}

)}
Plik: {template.original_filename} Rozmiar: {formatFileSize(template.file_size)} Dodano: {formatDate(template.created_at)}
)}
))}
); }