From 65a86ee4f59d33067ac5ef6651790422b6eba270 Mon Sep 17 00:00:00 2001 From: 1ilit <1ilit@proton.me> Date: Fri, 30 Aug 2024 11:09:50 +0400 Subject: [PATCH] Remodel the copy link modal --- src/components/EditorHeader/ControlPanel.jsx | 2 + src/components/EditorHeader/Modal/Modal.jsx | 8 +-- src/components/EditorHeader/Modal/Share.jsx | 65 ++++++++++++++------ 3 files changed, 53 insertions(+), 22 deletions(-) diff --git a/src/components/EditorHeader/ControlPanel.jsx b/src/components/EditorHeader/ControlPanel.jsx index 6d8cdfe..e1bc35f 100644 --- a/src/components/EditorHeader/ControlPanel.jsx +++ b/src/components/EditorHeader/ControlPanel.jsx @@ -71,6 +71,7 @@ import { exportSQL } from "../../utils/exportSQL"; import { databases } from "../../data/databases"; import { jsonToMermaid } from "../../utils/exportAs/mermaid"; import { isRtl } from "../../i18n/utils/rtl"; +import Share from "./Modal/Share"; export default function ControlPanel({ diagramId, @@ -1376,6 +1377,7 @@ export default function ControlPanel({ )} {layout.toolbar && toolbar()} + { + if (modal === MODAL.SHARE) return; switch (modal) { case MODAL.IMPORT: return ( @@ -341,8 +341,8 @@ export default function Modal({ return ; case MODAL.LANGUAGE: return ; - case MODAL.SHARE: - return ; + // case MODAL.SHARE: + // return ; case MODAL.GITHUB_TOKEN: return ; default: @@ -354,7 +354,7 @@ export default function Modal({ { setExportData(() => ({ diff --git a/src/components/EditorHeader/Modal/Share.jsx b/src/components/EditorHeader/Modal/Share.jsx index 33c2434..58f46f3 100644 --- a/src/components/EditorHeader/Modal/Share.jsx +++ b/src/components/EditorHeader/Modal/Share.jsx @@ -1,13 +1,14 @@ -import { Button, Input, Spin, Toast } from "@douyinfe/semi-ui"; +import { Button, Input, Modal, Spin, Toast } from "@douyinfe/semi-ui"; import { MODAL } from "../../../data/constants"; import { useCallback, useContext, useEffect, useState, useMemo } from "react"; import { useTranslation } from "react-i18next"; import { Octokit } from "octokit"; import { IdContext } from "../../Workspace"; import { IconLink } from "@douyinfe/semi-icons"; +import { isRtl } from "../../../i18n/utils/rtl"; -export default function Share({ setModal }) { - const { t } = useTranslation(); +export default function Share({ modal, setModal }) { + const { t, i18n } = useTranslation(); const { gistId, setGistId } = useContext(IdContext); const [loading, setLoading] = useState(false); @@ -78,7 +79,7 @@ export default function Share({ setModal }) { } catch (e) { console.error(e); } finally { - setModal(MODAL.SHARE); + setLoading(false); } }; updateOrGenerateLink(); @@ -95,20 +96,48 @@ export default function Share({ setModal }) { }); }; - if (loading) - return ( -
- -
{t("loading")}
-
- ); - return ( -
- - -
+ } + onCancel={() => setModal(MODAL.NONE)} + centered + closeOnEsc={true} + cancelText={t("cancel")} + width={600} + bodyStyle={{ + maxHeight: window.innerHeight - 280, + overflow: "auto", + direction: "ltr", + }} + > + {loading ? ( +
+ +
{t("loading")}
+
+ ) : ( +
+
+ + +
+
+
+ * Sharing this link will not create a live real-time collaboration + session +
+
+ )} +
); }