Explorar o código

支持外面打开

visuddhinanda %!s(int64=2) %!d(string=hai) anos
pai
achega
4dff4523ac
Modificáronse 1 ficheiros con 23 adicións e 10 borrados
  1. 23 10
      dashboard/src/components/general/VideoModal.tsx

+ 23 - 10
dashboard/src/components/general/VideoModal.tsx

@@ -1,25 +1,38 @@
-import { useState } from "react";
+import { useEffect, useState } from "react";
 import { Modal } from "antd";
 import { Modal } from "antd";
 import Video from "./Video";
 import Video from "./Video";
 
 
 interface IWidget {
 interface IWidget {
   src?: string;
   src?: string;
   type?: string;
   type?: string;
+  open?: boolean;
   trigger?: JSX.Element;
   trigger?: JSX.Element;
+  onOpenChange?: Function;
 }
 }
-export const VideoModalWidget = ({ src, type, trigger }: IWidget) => {
-  const [isModalOpen, setIsModalOpen] = useState(false);
+export const VideoModalWidget = ({
+  src,
+  type,
+  open = false,
+  trigger,
+  onOpenChange,
+}: IWidget) => {
+  //TODO 跟video ctl 合并
+  const [isModalOpen, setIsModalOpen] = useState(open);
+
+  useEffect(() => setIsModalOpen(open), [open]);
 
 
   const showModal = () => {
   const showModal = () => {
     setIsModalOpen(true);
     setIsModalOpen(true);
+    if (typeof onOpenChange !== "undefined") {
+      onOpenChange(true);
+    }
   };
   };
 
 
-  const handleOk = () => {
-    setIsModalOpen(false);
-  };
-
-  const handleCancel = () => {
+  const handleClose = () => {
     setIsModalOpen(false);
     setIsModalOpen(false);
+    if (typeof onOpenChange !== "undefined") {
+      onOpenChange(false);
+    }
   };
   };
 
 
   return (
   return (
@@ -30,8 +43,8 @@ export const VideoModalWidget = ({ src, type, trigger }: IWidget) => {
         title="Basic Modal"
         title="Basic Modal"
         footer={false}
         footer={false}
         open={isModalOpen}
         open={isModalOpen}
-        onOk={handleOk}
-        onCancel={handleCancel}
+        onOk={handleClose}
+        onCancel={handleClose}
         width={800}
         width={800}
         destroyOnClose
         destroyOnClose
         maskClosable={false}
         maskClosable={false}