import { useState } from 'react'; import FileExplorer from './components/FileExplorer'; import DocumentEditor from './components/DocumentEditor'; import SearchBar from './components/SearchBar'; import SearchResults from './components/SearchResults'; import UploadButton from './components/UploadButton'; import ReindexButton from './components/ReindexButton'; import type { SearchResult, UploadDocumentResponse } from './api/client'; export default function App() { const [selectedKey, setSelectedKey] = useState(null); const [searchQuery, setSearchQuery] = useState(''); const [searchResults, setSearchResults] = useState([]); const [isSearching, setIsSearching] = useState(false); const [isDirty, setIsDirty] = useState(false); const [refreshKey, setRefreshKey] = useState(0); const [uploadPath] = useState(''); function confirmDiscardIfDirty(): boolean { if (!isDirty) { return true; } return window.confirm('有未保存的修改,确定要离开吗?'); } function handleSelectFile(key: string) { if (!confirmDiscardIfDirty()) { return; } setSelectedKey(key); } function handleJumpToResult(key: string) { if (!confirmDiscardIfDirty()) { return; } setSelectedKey(key); setSearchQuery(''); setSearchResults([]); setIsSearching(false); } function handleQueryChange(query: string) { setSearchQuery(query); setIsSearching(query.trim() !== ''); } function handleResults(results: SearchResult[]) { setSearchResults(results); setIsSearching(false); } function handleUploaded(result: UploadDocumentResponse) { setSelectedKey(result.key); setRefreshKey((prev) => prev + 1); } function handleDeleted() { setSelectedKey(null); setRefreshKey((prev) => prev + 1); } return (

DocHub 档案 · 检索

{selectedKey ? ( ) : (
未选择文档
)}
{searchQuery !== '' && !isSearching && (
)}
DOCHUB UTF-8
); }