add more shortcut
This commit is contained in:
@@ -17,6 +17,11 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"commands": {
|
"commands": {
|
||||||
|
"_execute_browser_action": {
|
||||||
|
"suggested_key": {
|
||||||
|
"default": "Alt+K"
|
||||||
|
}
|
||||||
|
},
|
||||||
"toggleTranslate": {
|
"toggleTranslate": {
|
||||||
"suggested_key": {
|
"suggested_key": {
|
||||||
"default": "Alt+Q"
|
"default": "Alt+Q"
|
||||||
|
|||||||
@@ -18,6 +18,11 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"commands": {
|
"commands": {
|
||||||
|
"_execute_action": {
|
||||||
|
"suggested_key": {
|
||||||
|
"default": "Alt+K"
|
||||||
|
}
|
||||||
|
},
|
||||||
"toggleTranslate": {
|
"toggleTranslate": {
|
||||||
"suggested_key": {
|
"suggested_key": {
|
||||||
"default": "Alt+Q"
|
"default": "Alt+Q"
|
||||||
|
|||||||
@@ -10,12 +10,10 @@ import {
|
|||||||
} from "./libs/storage";
|
} from "./libs/storage";
|
||||||
import { Translator } from "./libs/translator";
|
import { Translator } from "./libs/translator";
|
||||||
import { trySyncAllSubRules } from "./libs/subRules";
|
import { trySyncAllSubRules } from "./libs/subRules";
|
||||||
import { isGm } from "./libs/client";
|
|
||||||
import { MSG_TRANS_TOGGLE, MSG_TRANS_PUTRULE } from "./config";
|
import { MSG_TRANS_TOGGLE, MSG_TRANS_PUTRULE } from "./config";
|
||||||
import { isIframe } from "./libs/iframe";
|
import { isIframe } from "./libs/iframe";
|
||||||
import { handlePing, injectScript } from "./libs/gm";
|
import { handlePing, injectScript } from "./libs/gm";
|
||||||
import { matchRule } from "./libs/rules";
|
import { matchRule } from "./libs/rules";
|
||||||
import { register } from "@violentmonkey/shortcut";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 入口函数
|
* 入口函数
|
||||||
@@ -89,40 +87,6 @@ const init = async () => {
|
|||||||
</React.StrictMode>
|
</React.StrictMode>
|
||||||
);
|
);
|
||||||
|
|
||||||
// 注册菜单
|
|
||||||
if (isGm) {
|
|
||||||
try {
|
|
||||||
GM.registerMenuCommand(
|
|
||||||
"Toggle Translate",
|
|
||||||
(event) => {
|
|
||||||
translator.toggle();
|
|
||||||
},
|
|
||||||
"Q"
|
|
||||||
);
|
|
||||||
GM.registerMenuCommand(
|
|
||||||
"Toggle Style",
|
|
||||||
(event) => {
|
|
||||||
translator.toggleStyle();
|
|
||||||
},
|
|
||||||
"C"
|
|
||||||
);
|
|
||||||
} catch (err) {
|
|
||||||
console.log("[registerMenuCommand]", err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 注册快捷键
|
|
||||||
try {
|
|
||||||
register("a-q", () => {
|
|
||||||
translator.toggle();
|
|
||||||
});
|
|
||||||
register("a-c", () => {
|
|
||||||
translator.toggleStyle();
|
|
||||||
});
|
|
||||||
} catch (err) {
|
|
||||||
console.log("[shortcut.register", err);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 同步订阅规则
|
// 同步订阅规则
|
||||||
trySyncAllSubRules(setting);
|
trySyncAllSubRules(setting);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import { useEffect, useState, useMemo, useCallback } from "react";
|
|||||||
import { SettingProvider } from "../../hooks/Setting";
|
import { SettingProvider } from "../../hooks/Setting";
|
||||||
import Popup from "../Popup";
|
import Popup from "../Popup";
|
||||||
import { debounce } from "../../libs/utils";
|
import { debounce } from "../../libs/utils";
|
||||||
|
import * as shortcut from "@violentmonkey/shortcut";
|
||||||
|
import { isGm } from "../../libs/client";
|
||||||
|
|
||||||
export default function Action({ translator, fab }) {
|
export default function Action({ translator, fab }) {
|
||||||
const fabWidth = 40;
|
const fabWidth = 40;
|
||||||
@@ -44,6 +46,73 @@ export default function Action({ translator, fab }) {
|
|||||||
setMoved(true);
|
setMoved(true);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
// 注册快捷键
|
||||||
|
shortcut.register("a-q", () => {
|
||||||
|
translator.toggle();
|
||||||
|
setShowPopup(false);
|
||||||
|
});
|
||||||
|
shortcut.register("a-c", () => {
|
||||||
|
translator.toggleStyle();
|
||||||
|
setShowPopup(false);
|
||||||
|
});
|
||||||
|
shortcut.register("a-k", () => {
|
||||||
|
setShowPopup((pre) => !pre);
|
||||||
|
});
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
shortcut.disable();
|
||||||
|
};
|
||||||
|
}, [translator]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
// 注册菜单
|
||||||
|
const menuCommandIds = [];
|
||||||
|
if (isGm) {
|
||||||
|
try {
|
||||||
|
menuCommandIds.push(
|
||||||
|
GM.registerMenuCommand(
|
||||||
|
"Toggle Translate",
|
||||||
|
(event) => {
|
||||||
|
translator.toggle();
|
||||||
|
setShowPopup(false);
|
||||||
|
},
|
||||||
|
"Q"
|
||||||
|
),
|
||||||
|
GM.registerMenuCommand(
|
||||||
|
"Toggle Style",
|
||||||
|
(event) => {
|
||||||
|
translator.toggleStyle();
|
||||||
|
setShowPopup(false);
|
||||||
|
},
|
||||||
|
"C"
|
||||||
|
),
|
||||||
|
GM.registerMenuCommand(
|
||||||
|
"Open Menu",
|
||||||
|
(event) => {
|
||||||
|
setShowPopup((pre) => !pre);
|
||||||
|
},
|
||||||
|
"K"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} catch (err) {
|
||||||
|
console.log("[registerMenuCommand]", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
if (isGm) {
|
||||||
|
try {
|
||||||
|
menuCommandIds.forEach((id) => {
|
||||||
|
GM.unregisterMenuCommand(id);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}, [translator]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
window.addEventListener("resize", handleWindowResize);
|
window.addEventListener("resize", handleWindowResize);
|
||||||
return () => {
|
return () => {
|
||||||
@@ -53,6 +122,7 @@ export default function Action({ translator, fab }) {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
window.addEventListener("click", handleWindowClick);
|
window.addEventListener("click", handleWindowClick);
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
window.removeEventListener("click", handleWindowClick);
|
window.removeEventListener("click", handleWindowClick);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user