// UploadedFileCard.tsx import styles from "./UploadedFileCard.module.css"; import Text from "../Text/Text"; import { useState, useEffect } from "react"; // Import useEffect interface UploadedFileCardProps { fileName: string; fileType: string; fileSize: number; onClose: () => void; className?: string; // Add className prop } function UploadedFileCard(props: Readonly) { const [showRawSize, setShowRawSize] = useState(false); const [isMounted, setIsMounted] = useState(false); // New state for animation trigger useEffect(() => { // Trigger animation after component mounts setIsMounted(true); }, []); const formatFileSize = (bytes: number) => { const k = 1024; const sizes = ["Bytes", "KB", "MB", "GB", "TB"]; const iteration = Math.floor(Math.log(bytes) / Math.log(k)); return ( parseFloat((bytes / Math.pow(k, iteration)).toFixed(2)) + " " + sizes[iteration] ); }; const handleSizeClick = () => { setShowRawSize((prevState) => !prevState); }; return (
{props.fileName}.{props.fileType} Portable document format {showRawSize ? `${props.fileSize} Bytes` : formatFileSize(props.fileSize)}
); } export default UploadedFileCard;