import { useState, useEffect } from 'react'; import { invoke } from '@tauri-apps/api/tauri'; interface FileItem { name: string; path: string; is_dir: boolean; } interface FileBrowserProps { path: string; onFileSelect?: (path: string) => void; } export function FileBrowser({ path, onFileSelect }: FileBrowserProps) { const [files, setFiles] = useState([]); const [loading, setLoading] = useState(false); useEffect(() => { const loadFiles = async () => { setLoading(true); try { const result = await invoke('list_files', { path }); setFiles(result); } catch (error) { console.error('Error listing files:', error); } finally { setLoading(false); } }; loadFiles(); }, [path]); return (

File Browser: {path || 'Root'}

{loading ? (

Loading...

) : (
    {files.map((file) => (
  • onFileSelect && onFileSelect(file.path)} > {file.is_dir ? '📁' : '📄'} {file.name}
  • ))}
)}
); }