SentHistoryModal.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React, { useEffect, useState } from "react";
  2. import { Modal } from "antd";
  3. import SentHistory from "./SentHistory";
  4. interface IWidget {
  5. sentId?: string;
  6. trigger?: React.ReactNode;
  7. open?: boolean;
  8. onClose?: Function;
  9. }
  10. const SentHistoryModalWidget = ({
  11. open = false,
  12. sentId,
  13. trigger,
  14. onClose,
  15. }: IWidget) => {
  16. const [isModalOpen, setIsModalOpen] = useState(open);
  17. useEffect(() => setIsModalOpen(open), [open]);
  18. const showModal = () => {
  19. setIsModalOpen(true);
  20. };
  21. const handleOk = () => {
  22. setIsModalOpen(false);
  23. if (typeof onClose !== "undefined") {
  24. onClose();
  25. }
  26. };
  27. const handleCancel = () => {
  28. setIsModalOpen(false);
  29. if (typeof onClose !== "undefined") {
  30. onClose();
  31. }
  32. };
  33. return (
  34. <>
  35. <span onClick={showModal}>{trigger}</span>
  36. <Modal
  37. width={"80%"}
  38. title="加入文集"
  39. open={isModalOpen}
  40. onOk={handleOk}
  41. onCancel={handleCancel}
  42. destroyOnClose
  43. >
  44. <SentHistory sentId={sentId} />
  45. </Modal>
  46. </>
  47. );
  48. };
  49. export default SentHistoryModalWidget;