"use client"; import { useState } from "react"; import Button from "@/components/ui/Button"; export default function FileItem({ file, onDelete, onUpdate }) { const [isEditing, setIsEditing] = useState(false); const [editFilename, setEditFilename] = useState(file.original_filename); const [editDescription, setEditDescription] = useState(file.description || ""); const handleSave = async () => { try { const res = await fetch(`/api/files/${file.file_id}`, { method: 'PUT', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ original_filename: editFilename, description: editDescription, }), }); if (res.ok) { const updatedFile = await res.json(); onUpdate(updatedFile); setIsEditing(false); } else { alert('Błąd podczas aktualizacji pliku'); } } catch (error) { console.error('Error updating file:', error); alert('Błąd podczas aktualizacji pliku'); } }; const handleCancel = () => { setEditFilename(file.original_filename); setEditDescription(file.description || ""); setIsEditing(false); }; const formatFileSize = (bytes) => { if (!bytes) return ''; 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 getFileIcon = (filename) => { const ext = filename.split('.').pop().toLowerCase(); if (['jpg', 'jpeg', 'png', 'gif'].includes(ext)) { return ( ); } else if (ext === 'pdf') { return ( ); } else if (['doc', 'docx'].includes(ext)) { return ( ); } else if (['xls', 'xlsx'].includes(ext)) { return ( ); } else { return ( ); } }; if (isEditing) { return (