visuddhinanda 11 月之前
父节点
当前提交
b44fa7aed1
共有 1 个文件被更改,包括 19 次插入5 次删除
  1. 19 5
      dashboard-v4/dashboard/src/components/share/ShareModal.tsx

+ 19 - 5
dashboard-v4/dashboard/src/components/share/ShareModal.tsx

@@ -1,4 +1,4 @@
-import { useState } from "react";
+import { useEffect, useState } from "react";
 import { Modal } from "antd";
 import Share, { EResType } from "./Share";
 import { useIntl } from "react-intl";
@@ -7,20 +7,34 @@ interface IWidget {
   resId: string;
   resType: EResType;
   trigger?: React.ReactNode;
+  open?: boolean;
+  onClose?: () => void;
 }
-const ShareModalWidget = ({ resId, resType, trigger }: IWidget) => {
-  const [isModalOpen, setIsModalOpen] = useState(false);
+const ShareModalWidget = ({
+  resId,
+  resType,
+  trigger,
+  open,
+  onClose,
+}: IWidget) => {
+  const [isModalOpen, setIsModalOpen] = useState(open);
   const intl = useIntl();
+
+  useEffect(() => setIsModalOpen(open), [open]);
   const showModal = () => {
     setIsModalOpen(true);
   };
 
   const handleOk = () => {
-    setIsModalOpen(false);
+    if (onClose) {
+      onClose();
+    } else {
+      setIsModalOpen(false);
+    }
   };
 
   const handleCancel = () => {
-    setIsModalOpen(false);
+    handleOk();
   };
 
   return (