Browse Source

add quote-link-tpl

visuddhinanda 2 years ago
parent
commit
e511c6cfdc
1 changed files with 52 additions and 8 deletions
  1. 52 8
      dashboard/src/components/template/ParaHandle.tsx

+ 52 - 8
dashboard/src/components/template/ParaHandle.tsx

@@ -1,6 +1,7 @@
 import { Button, Divider, Dropdown, MenuProps, message } from "antd";
 import { useNavigate, useSearchParams } from "react-router-dom";
 import { fullUrl } from "../../utils";
+import { useIntl } from "react-intl";
 
 interface IWidgetParaHandleCtl {
   book: number;
@@ -18,21 +19,59 @@ const ParaHandleCtl = ({
 }: IWidgetParaHandleCtl) => {
   const navigate = useNavigate();
   const [searchParams] = useSearchParams();
+  const intl = useIntl();
 
   const items: MenuProps["items"] = [
     {
       key: "solo",
-      label: "仅显示此段",
+      label: intl.formatMessage({
+        id: "labels.curr.paragraph.only",
+      }),
     },
     {
       key: "solo-in-tab",
-      label: "在标签页打开此段",
+      label: intl.formatMessage({
+        id: "labels.curr.paragraph.open",
+      }),
     },
     {
       key: "copy-sent",
-      label: "复制句子链接",
+      label: intl.formatMessage({
+        id: "labels.curr.paragraph.copy.tpl",
+      }),
+    },
+    {
+      key: "quote-link-tpl",
+      label: intl.formatMessage({
+        id: "labels.curr.paragraph.quote.link.tpl",
+      }),
+      children: [
+        {
+          key: "quote-link-tpl-m",
+          label: intl.formatMessage({
+            id: "labels.page.number.type.M",
+          }),
+        },
+        {
+          key: "quote-link-tpl-p",
+          label: intl.formatMessage({
+            id: "labels.page.number.type.P",
+          }),
+        },
+        {
+          key: "quote-link-tpl-t",
+          label: intl.formatMessage({
+            id: "labels.page.number.type.T",
+          }),
+        },
+      ],
     },
   ];
+  const copyToClipboard = (text: string) => {
+    navigator.clipboard.writeText(text).then(() => {
+      message.success("链接地址已经拷贝到剪贴板");
+    });
+  };
   const onClick: MenuProps["onClick"] = (e) => {
     /**
      * TODO 临时的解决方案。以后应该从传参获取其他参数,然后reducer 通知更新。
@@ -56,11 +95,16 @@ const ParaHandleCtl = ({
         window.open(fullUrl(url), "_blank");
         break;
       case "copy-sent":
-        navigator.clipboard
-          .writeText(sentences.map((item) => `{{${item}}}`).join(""))
-          .then(() => {
-            message.success("链接地址已经拷贝到剪贴板");
-          });
+        copyToClipboard(sentences.map((item) => `{{${item}}}`).join(""));
+        break;
+      case "quote-link-tpl-m":
+        copyToClipboard(`{{ql|type=m|book=${book}|para=${para}}}`);
+        break;
+      case "quote-link-tpl-p":
+        copyToClipboard(`{{ql|type=p|book=${book}|para=${para}}}`);
+        break;
+      case "quote-link-tpl-t":
+        copyToClipboard(`{{ql|type=t|book=${book}|para=${para}}}`);
         break;
       default:
         break;