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