您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

select-files.tsx 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import NewDocumentLink from '@/components/new-document-link';
  2. import { useTranslate } from '@/hooks/common-hooks';
  3. import {
  4. useAllTestingResult,
  5. useSelectTestingResult,
  6. } from '@/hooks/knowledge-hooks';
  7. import { ITestingDocument } from '@/interfaces/database/knowledge';
  8. import { EyeOutlined } from '@ant-design/icons';
  9. import { Button, Table, TableProps, Tooltip } from 'antd';
  10. interface IProps {
  11. handleTesting: (ids: string[]) => void;
  12. setSelectedDocumentIds: (ids: string[]) => void;
  13. }
  14. const SelectFiles = ({ setSelectedDocumentIds, handleTesting }: IProps) => {
  15. const { documents } = useSelectTestingResult();
  16. const { documents: documentsAll } = useAllTestingResult();
  17. const useDocuments =
  18. documentsAll?.length > documents?.length ? documentsAll : documents;
  19. const { t } = useTranslate('fileManager');
  20. const columns: TableProps<ITestingDocument>['columns'] = [
  21. {
  22. title: 'Name',
  23. dataIndex: 'doc_name',
  24. key: 'doc_name',
  25. render: (text) => <p>{text}</p>,
  26. },
  27. {
  28. title: 'Hits',
  29. dataIndex: 'count',
  30. key: 'count',
  31. width: 80,
  32. },
  33. {
  34. title: 'View',
  35. key: 'view',
  36. width: 50,
  37. render: (_, { doc_id, doc_name }) => (
  38. <NewDocumentLink
  39. documentName={doc_name}
  40. documentId={doc_id}
  41. prefix="document"
  42. >
  43. <Tooltip title={t('preview')}>
  44. <Button type="text">
  45. <EyeOutlined size={20} />
  46. </Button>
  47. </Tooltip>
  48. </NewDocumentLink>
  49. ),
  50. },
  51. ];
  52. const rowSelection = {
  53. onChange: (selectedRowKeys: React.Key[]) => {
  54. handleTesting(selectedRowKeys as string[]);
  55. setSelectedDocumentIds(selectedRowKeys as string[]);
  56. },
  57. getCheckboxProps: (record: ITestingDocument) => ({
  58. disabled: record.doc_name === 'Disabled User', // Column configuration not to be checked
  59. name: record.doc_name,
  60. }),
  61. };
  62. return (
  63. <Table
  64. columns={columns}
  65. dataSource={useDocuments}
  66. showHeader={false}
  67. rowSelection={rowSelection}
  68. rowKey={'doc_id'}
  69. />
  70. );
  71. };
  72. export default SelectFiles;