diff --git a/frontend/src/components/FileExplorer.tsx b/frontend/src/components/FileExplorer.tsx index 4da18e5..82a0f68 100644 --- a/frontend/src/components/FileExplorer.tsx +++ b/frontend/src/components/FileExplorer.tsx @@ -1,15 +1,25 @@ 'use client'; import { useState, useEffect, useCallback, useRef, useMemo } from 'react'; +import { formatDistanceToNow } from 'date-fns'; import { motion, AnimatePresence } from 'framer-motion'; import { - Folder, File, Search, Pin, Trash2, HardDrive, Settings, + Folder as LucideFolder, File, Search, Pin, Trash2, HardDrive, Settings, ChevronRight, Grid3X3, List, Plus, Upload, LogOut, MoreVertical, Star, Download, Pencil, Copy, Move, FolderPlus, ArrowUp, X, Check, RefreshCw, Info, Link as LinkIcon, Image as ImageIcon, Film as FilmIcon, Sun, Moon, Music as MusicIcon, Code as CodeIcon, Archive as ArchiveIcon, CornerDownRight } from 'lucide-react'; import api from '@/lib/api'; + +const Folder = ({ className, style }: { className?: string, style?: React.CSSProperties }) => ( + + + +); + +const API_BASE = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8080'; +import api from '@/lib/api'; import FilePreview from './FilePreview'; import SettingsPage from './SettingsPage'; import StorageDashboard from './StorageDashboard'; @@ -128,7 +138,7 @@ function Tooltip({ children, text }: { children: React.ReactNode; text: string } return (
setHovered(true)} onMouseLeave={() => setHovered(false)} > @@ -733,14 +743,12 @@ export default function FileExplorer({ onLogout }: FileExplorerProps) { function getFileIcon(file: FileItem, large = false) { if (file.is_dir) { - if (large) { - return ( - - - - ); - } - return ; + return ( + + ); } const sizeClass = large ? "w-20 h-20" : "w-5 h-5"; diff --git a/frontend/src/components/FileInfoModal.tsx b/frontend/src/components/FileInfoModal.tsx index 1259765..7cb54ec 100644 --- a/frontend/src/components/FileInfoModal.tsx +++ b/frontend/src/components/FileInfoModal.tsx @@ -158,6 +158,14 @@ export default function FileInfoModal({ filePath, onClose }: FileInfoModalProps) {data.info.metadata.VideoFrameRate} fps
)} + {(data.info.metadata.AvgBitrate || data.info.metadata.AudioBitrate || data.info.metadata.VideoBitrate || data.info.metadata.Bitrate) && ( +
+ Bitrate + + {data.info.metadata.AvgBitrate || data.info.metadata.AudioBitrate || data.info.metadata.VideoBitrate || data.info.metadata.Bitrate} + +
+ )} {data.info.metadata.CompressorID && (
Codec diff --git a/frontend/src/components/FilePreview.tsx b/frontend/src/components/FilePreview.tsx index 915dbd5..f1447aa 100644 --- a/frontend/src/components/FilePreview.tsx +++ b/frontend/src/components/FilePreview.tsx @@ -145,7 +145,7 @@ export default function FilePreview({ file, onClose }: FilePreviewProps) { )} {previewType === 'audio' && ( -
+

{getFileDisplayName(file.name)}