2
0

ArticleListModal.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { useState } from "react";
  2. import { Modal } from "antd";
  3. //import ArticleList from "./ArticleList";
  4. interface IWidget {
  5. studioName?: string;
  6. trigger?: React.ReactNode;
  7. multiple?: boolean;
  8. onSelect?: (id: string, title: string) => void;
  9. }
  10. const ArticleListModalWidget = ({
  11. studioName,
  12. trigger = "Article",
  13. multiple = true,
  14. onSelect,
  15. }: IWidget) => {
  16. const [isModalOpen, setIsModalOpen] = useState(false);
  17. const showModal = () => {
  18. setIsModalOpen(true);
  19. };
  20. const handleOk = () => {
  21. setIsModalOpen(false);
  22. //TODO remove
  23. if (typeof onSelect !== "undefined") {
  24. onSelect("", "title");
  25. }
  26. };
  27. const handleCancel = () => {
  28. setIsModalOpen(false);
  29. };
  30. console.debug("render", studioName, multiple);
  31. return (
  32. <>
  33. <span onClick={showModal}>{trigger}</span>
  34. <Modal
  35. width={"80%"}
  36. title="文章列表"
  37. open={isModalOpen}
  38. onOk={handleOk}
  39. onCancel={handleCancel}
  40. >
  41. {/**
  42. * <ArticleList
  43. studioName={studioName}
  44. editable={false}
  45. multiple={multiple}
  46. onSelect={(id: string, title: string) => {
  47. if (typeof onSelect !== "undefined") {
  48. onSelect(id, title);
  49. }
  50. handleOk();
  51. }}
  52. />
  53. */}
  54. </Modal>
  55. </>
  56. );
  57. };
  58. export default ArticleListModalWidget;