You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { useTranslate } from '@/hooks/commonHooks';
  2. import { IFile } from '@/interfaces/database/file-manager';
  3. import { api_host } from '@/utils/api';
  4. import { downloadFile } from '@/utils/fileUtil';
  5. import {
  6. DeleteOutlined,
  7. DownloadOutlined,
  8. EditOutlined,
  9. ToolOutlined,
  10. } from '@ant-design/icons';
  11. import { Button, Space, Tooltip } from 'antd';
  12. import { useHandleDeleteFile } from '../hooks';
  13. import styles from './index.less';
  14. interface IProps {
  15. record: IFile;
  16. setCurrentRecord: (record: any) => void;
  17. showRenameModal: (record: IFile) => void;
  18. showConnectToKnowledgeModal: (record: IFile) => void;
  19. setSelectedRowKeys(keys: string[]): void;
  20. }
  21. const ActionCell = ({
  22. record,
  23. setCurrentRecord,
  24. showRenameModal,
  25. showConnectToKnowledgeModal,
  26. setSelectedRowKeys,
  27. }: IProps) => {
  28. const documentId = record.id;
  29. const beingUsed = false;
  30. const { t } = useTranslate('knowledgeDetails');
  31. const { handleRemoveFile } = useHandleDeleteFile(
  32. [documentId],
  33. setSelectedRowKeys,
  34. );
  35. const onDownloadDocument = () => {
  36. downloadFile({
  37. url: `${api_host}/document/get/${documentId}`,
  38. filename: record.name,
  39. });
  40. };
  41. const setRecord = () => {
  42. setCurrentRecord(record);
  43. };
  44. const onShowRenameModal = () => {
  45. setRecord();
  46. showRenameModal(record);
  47. };
  48. const onShowConnectToKnowledgeModal = () => {
  49. showConnectToKnowledgeModal(record);
  50. };
  51. return (
  52. <Space size={0}>
  53. <Button
  54. type="text"
  55. className={styles.iconButton}
  56. onClick={onShowConnectToKnowledgeModal}
  57. >
  58. <ToolOutlined size={20} />
  59. </Button>
  60. <Tooltip title={t('rename', { keyPrefix: 'common' })}>
  61. <Button
  62. type="text"
  63. disabled={beingUsed}
  64. onClick={onShowRenameModal}
  65. className={styles.iconButton}
  66. >
  67. <EditOutlined size={20} />
  68. </Button>
  69. </Tooltip>
  70. <Button
  71. type="text"
  72. disabled={beingUsed}
  73. onClick={handleRemoveFile}
  74. className={styles.iconButton}
  75. >
  76. <DeleteOutlined size={20} />
  77. </Button>
  78. {record.type !== 'folder' && (
  79. <Button
  80. type="text"
  81. disabled={beingUsed}
  82. onClick={onDownloadDocument}
  83. className={styles.iconButton}
  84. >
  85. <DownloadOutlined size={20} />
  86. </Button>
  87. )}
  88. </Space>
  89. );
  90. };
  91. export default ActionCell;