|
|
@@ -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 (
|