'use client'; import * as React from 'react'; import { FolderSearch } from 'lucide-react'; import type { File as FileType, Folder as FolderType } from '@/app/api/files/route'; import { FileGridItem } from './file-grid-item'; import { FolderGridItem } from './folder-grid-item'; interface GridViewProps { files: FileType[]; folders: FolderType[]; searchTerm: string; onSelectFolder: (path: string) => void; selectedIds: string[]; onSelectItem: (id: string, isChecked: boolean) => void; isSelectionActive: boolean; isPublicShare?: boolean; } export function GridView({ files, folders, searchTerm, onSelectFolder, selectedIds, onSelectItem, isSelectionActive, isPublicShare, }: GridViewProps) { const hasItems = files.length > 0 || folders.length > 0; const [isAnimating, setIsAnimating] = React.useState(false); React.useEffect(() => { setIsAnimating(true); const timer = setTimeout(() => setIsAnimating(false), 500); return () => clearTimeout(timer); }, [files, folders]); if (!hasItems) { return (

{searchTerm ? `No results for "${searchTerm}"` : 'This folder is empty'}

{searchTerm ? 'Try a different search term.' : 'There are no files or folders here.'}

); } return (
{folders.map((folder, index) => ( ))} {files.map((file, index) => ( ))}
); }