Files
LangBot/web/src/app/home/knowledge/components/kb-docs/KBDoc.tsx
T
2025-07-12 17:15:07 +08:00

49 lines
1.4 KiB
TypeScript

import { useEffect, useState } from 'react';
import { httpClient } from '@/app/infra/http/HttpClient';
import { KnowledgeBaseFile } from '@/app/infra/entities/api';
import { columns, DocumentFile } from './documents/columns';
import { DataTable } from './documents/data-table';
import FileUploadZone from './FileUploadZone';
export default function KBDoc({ kbId }: { kbId: string }) {
const [documentsList, setDocumentsList] = useState<DocumentFile[]>([]);
useEffect(() => {
getDocumentsList();
}, []);
async function getDocumentsList() {
const resp = await httpClient.getKnowledgeBaseFiles(kbId);
setDocumentsList(
resp.files.map((file: KnowledgeBaseFile) => {
return {
id: file.file_id,
name: file.file_name,
status: file.status,
};
}),
);
}
const handleUploadSuccess = () => {
// Refresh document list after successful upload
getDocumentsList();
};
const handleUploadError = (error: string) => {
// Error messages are already handled by toast in FileUploadZone component
console.error('Upload failed:', error);
};
return (
<div className="container mx-auto py-4">
<FileUploadZone
kbId={kbId}
onUploadSuccess={handleUploadSuccess}
onUploadError={handleUploadError}
/>
<DataTable columns={columns()} data={documentsList} />
</div>
);
}