document-extra-actions.tsx 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. 'use client'
  2. import type { FC } from 'react'
  3. import { useState } from 'react'
  4. import {
  5. RiCalendarScheduleLine,
  6. RiFileHistoryLine,
  7. } from '@remixicon/react'
  8. import Tooltip from '@/app/components/base/tooltip'
  9. import ScheduleModal from '../schedule/schedule-modal'
  10. import ScheduleList from '../schedule/schedule-list'
  11. import OperationLogsModal from '../operation-logs/operation-logs-modal'
  12. type DocumentExtraActionsProps = {
  13. datasetId: string
  14. documentId: string
  15. documentName: string
  16. }
  17. const DocumentExtraActions: FC<DocumentExtraActionsProps> = ({
  18. datasetId,
  19. documentId,
  20. documentName,
  21. }) => {
  22. const [showScheduleModal, setShowScheduleModal] = useState(false)
  23. const [showScheduleList, setShowScheduleList] = useState(false)
  24. const [showOperationLogs, setShowOperationLogs] = useState(false)
  25. return (
  26. <>
  27. <div className="flex items-center gap-2">
  28. {/* Schedule Button */}
  29. <Tooltip
  30. popupContent="定时任务"
  31. triggerClassName="block"
  32. >
  33. <button
  34. className="flex h-8 w-8 items-center justify-center cursor-pointer rounded-lg border-[0.5px] border-components-button-secondary-border bg-components-button-secondary-bg p-2 shadow-xs shadow-shadow-shadow-3 backdrop-blur-[5px] hover:border-components-button-secondary-border-hover hover:bg-components-button-secondary-bg-hover"
  35. onClick={() => setShowScheduleList(true)}
  36. >
  37. <RiCalendarScheduleLine className="w-4 h-4 text-components-button-secondary-text" />
  38. </button>
  39. </Tooltip>
  40. {/* Operation History Button */}
  41. <Tooltip
  42. popupContent="操作历史"
  43. triggerClassName="block"
  44. >
  45. <button
  46. className="flex h-8 w-8 items-center justify-center cursor-pointer rounded-lg border-[0.5px] border-components-button-secondary-border bg-components-button-secondary-bg p-2 shadow-xs shadow-shadow-shadow-3 backdrop-blur-[5px] hover:border-components-button-secondary-border-hover hover:bg-components-button-secondary-bg-hover"
  47. onClick={() => setShowOperationLogs(true)}
  48. >
  49. <RiFileHistoryLine className="w-4 h-4 text-components-button-secondary-text" />
  50. </button>
  51. </Tooltip>
  52. </div>
  53. {/* Modals */}
  54. <ScheduleModal
  55. isOpen={showScheduleModal}
  56. onClose={() => setShowScheduleModal(false)}
  57. datasetId={datasetId}
  58. documentId={documentId}
  59. documentName={documentName}
  60. />
  61. <ScheduleList
  62. isOpen={showScheduleList}
  63. onClose={() => setShowScheduleList(false)}
  64. datasetId={datasetId}
  65. documentId={documentId}
  66. documentName={documentName}
  67. onCreateNew={() => {
  68. setShowScheduleList(false)
  69. setShowScheduleModal(true)
  70. }}
  71. />
  72. <OperationLogsModal
  73. isOpen={showOperationLogs}
  74. onClose={() => setShowOperationLogs(false)}
  75. datasetId={datasetId}
  76. documentId={documentId}
  77. documentName={documentName}
  78. />
  79. </>
  80. )
  81. }
  82. export default DocumentExtraActions