Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
340bd6dd80 | ||
|
|
20617c158f | ||
|
|
32f338137c | ||
|
|
c61b9e3910 | ||
|
|
9d51ad5f44 |
2
.env
2
.env
@@ -1,7 +1,7 @@
|
|||||||
GENERATE_SOURCEMAP=false
|
GENERATE_SOURCEMAP=false
|
||||||
|
|
||||||
REACT_APP_NAME=KISS Translator
|
REACT_APP_NAME=KISS Translator
|
||||||
REACT_APP_VERSION=1.3.3
|
REACT_APP_VERSION=1.3.5
|
||||||
REACT_APP_HOMEPAGE=https://github.com/fishjar/kiss-translator
|
REACT_APP_HOMEPAGE=https://github.com/fishjar/kiss-translator
|
||||||
REACT_APP_OPTIONSPAGE=https://kiss-translator.rayjar.com/options
|
REACT_APP_OPTIONSPAGE=https://kiss-translator.rayjar.com/options
|
||||||
REACT_APP_OPTIONSPAGE2=https://fishjar.github.io/kiss-translator/options.html
|
REACT_APP_OPTIONSPAGE2=https://fishjar.github.io/kiss-translator/options.html
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ const { WebpackManifestPlugin } = require("webpack-manifest-plugin");
|
|||||||
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
||||||
const webpack = require("webpack");
|
const webpack = require("webpack");
|
||||||
|
|
||||||
|
console.log("process.env.REACT_APP_CLIENT", process.env.REACT_APP_CLIENT);
|
||||||
|
|
||||||
// 扩展
|
// 扩展
|
||||||
const extWebpack = (config, env) => {
|
const extWebpack = (config, env) => {
|
||||||
const isEnvProduction = env === "production";
|
const isEnvProduction = env === "production";
|
||||||
@@ -126,11 +128,17 @@ const webWebpack = (config, env) => {
|
|||||||
|
|
||||||
config.entry = {
|
config.entry = {
|
||||||
main: paths.appSrc + "/userscriptIndex.js",
|
main: paths.appSrc + "/userscriptIndex.js",
|
||||||
options: paths.appSrc + "/userscriptOptions.js",
|
options:
|
||||||
|
paths.appSrc +
|
||||||
|
(env === "development" ? "/options.js" : "/userscriptOptions.js"),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (env === "development") {
|
||||||
|
config.entry.content = paths.appSrc + "/userscript.js";
|
||||||
|
}
|
||||||
|
|
||||||
config.output.filename = "[name].js";
|
config.output.filename = "[name].js";
|
||||||
config.output.publicPath = "./";
|
config.output.publicPath = env === "development" ? "/" : "./";
|
||||||
|
|
||||||
config.plugins = config.plugins.filter(
|
config.plugins = config.plugins.filter(
|
||||||
(plugin) => !names.includes(plugin.constructor.name)
|
(plugin) => !names.includes(plugin.constructor.name)
|
||||||
@@ -151,6 +159,17 @@ const webWebpack = (config, env) => {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (env === "development") {
|
||||||
|
config.plugins.push(
|
||||||
|
new HtmlWebpackPlugin({
|
||||||
|
inject: true,
|
||||||
|
chunks: ["content"],
|
||||||
|
template: paths.appPublic + "/content.html",
|
||||||
|
filename: "content.html",
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return config;
|
return config;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
2
dist/chrome/manifest.json
vendored
2
dist/chrome/manifest.json
vendored
@@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"name": "__MSG_app_name__",
|
"name": "__MSG_app_name__",
|
||||||
"description": "__MSG_app_description__",
|
"description": "__MSG_app_description__",
|
||||||
"version": "1.3.3",
|
"version": "1.3.5",
|
||||||
"default_locale": "zh",
|
"default_locale": "zh",
|
||||||
"author": "Gabe<yugang2002@gmail.com>",
|
"author": "Gabe<yugang2002@gmail.com>",
|
||||||
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
||||||
|
|||||||
2
dist/edge/chrome/manifest.json
vendored
2
dist/edge/chrome/manifest.json
vendored
@@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"name": "__MSG_app_name__",
|
"name": "__MSG_app_name__",
|
||||||
"description": "__MSG_app_description__",
|
"description": "__MSG_app_description__",
|
||||||
"version": "1.3.3",
|
"version": "1.3.5",
|
||||||
"default_locale": "zh",
|
"default_locale": "zh",
|
||||||
"author": "Gabe<yugang2002@gmail.com>",
|
"author": "Gabe<yugang2002@gmail.com>",
|
||||||
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
||||||
|
|||||||
2
dist/firefox/manifest.json
vendored
2
dist/firefox/manifest.json
vendored
@@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "__MSG_app_name__",
|
"name": "__MSG_app_name__",
|
||||||
"description": "__MSG_app_description__",
|
"description": "__MSG_app_description__",
|
||||||
"version": "1.3.3",
|
"version": "1.3.5",
|
||||||
"default_locale": "zh",
|
"default_locale": "zh",
|
||||||
"author": "Gabe<yugang2002@gmail.com>",
|
"author": "Gabe<yugang2002@gmail.com>",
|
||||||
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
||||||
|
|||||||
6
dist/userscript/kiss-translator.user.js
vendored
6
dist/userscript/kiss-translator.user.js
vendored
@@ -1,7 +1,7 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name KISS Translator
|
// @name KISS Translator
|
||||||
// @namespace https://github.com/fishjar/kiss-translator
|
// @namespace https://github.com/fishjar/kiss-translator
|
||||||
// @version 1.3.3
|
// @version 1.3.5
|
||||||
// @description A minimalist bilingual translation extension.
|
// @description A minimalist bilingual translation extension.
|
||||||
// @author Gabe<yugang2002@gmail.com>
|
// @author Gabe<yugang2002@gmail.com>
|
||||||
// @homepageURL https://github.com/fishjar/kiss-translator
|
// @homepageURL https://github.com/fishjar/kiss-translator
|
||||||
@@ -54567,8 +54567,10 @@ var Fab = /*#__PURE__*/react.forwardRef(function Fab(inProps, ref) {
|
|||||||
/* harmony default export */ var Fab_Fab = (Fab);
|
/* harmony default export */ var Fab_Fab = (Fab);
|
||||||
// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Translate.js
|
// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Translate.js
|
||||||
var Translate = __webpack_require__(3578);
|
var Translate = __webpack_require__(3578);
|
||||||
|
;// CONCATENATED MODULE: ./src/libs/mobile.js
|
||||||
|
var isMobile=("ontouchstart"in document.documentElement);
|
||||||
;// CONCATENATED MODULE: ./src/views/Action/Draggable.js
|
;// CONCATENATED MODULE: ./src/views/Action/Draggable.js
|
||||||
function Draggable(props){var _useState=(0,react.useState)(null),_useState2=(0,slicedToArray/* default */.Z)(_useState,2),origin=_useState2[0],setOrigin=_useState2[1];var _useState3=(0,react.useState)({x:props.left,y:props.top}),_useState4=(0,slicedToArray/* default */.Z)(_useState3,2),position=_useState4[0],setPosition=_useState4[1];var handlePointerDown=function handlePointerDown(e){e.target.setPointerCapture(e.pointerId);props===null||props===void 0?void 0:props.onStart();setOrigin({x:position.x,y:position.y,px:e.clientX,py:e.clientY});};var handlePointerMove=function handlePointerMove(e){props===null||props===void 0?void 0:props.onMove();if(origin){var dx=e.clientX-origin.px;var dy=e.clientY-origin.py;var x=origin.x+dx;var y=origin.y+dy;var _props$windowSize=props.windowSize,w=_props$windowSize.w,h=_props$windowSize.h;x=limitNumber(x,0,w-props.width);y=limitNumber(y,0,h-props.height);setPosition({x:x,y:y});}};var handlePointerUp=function handlePointerUp(e){setOrigin(null);};var handleClick=function handleClick(e){e.stopPropagation();};(0,react.useEffect)(function(){var _props$windowSize2=props.windowSize,w=_props$windowSize2.w,h=_props$windowSize2.h;setPosition(function(_ref){var x=_ref.x,y=_ref.y;return{x:limitNumber(x,0,w-props.width),y:limitNumber(y,0,h-props.height)};});},[props.windowSize,props.width,props.height]);return/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{position:"fixed",left:position.x,top:position.y,zIndex:2147483647},onClick:handleClick,children:[/*#__PURE__*/(0,jsx_runtime.jsx)("div",{onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp:handlePointerUp,children:props.handler}),/*#__PURE__*/(0,jsx_runtime.jsx)("div",{children:props.children})]});}
|
function Draggable(props){var _useState=(0,react.useState)(null),_useState2=(0,slicedToArray/* default */.Z)(_useState,2),origin=_useState2[0],setOrigin=_useState2[1];var _useState3=(0,react.useState)({x:props.left,y:props.top}),_useState4=(0,slicedToArray/* default */.Z)(_useState3,2),position=_useState4[0],setPosition=_useState4[1];var handlePointerDown=function handlePointerDown(e){!isMobile&&e.target.setPointerCapture(e.pointerId);props===null||props===void 0?void 0:props.onStart();var _ref=isMobile?e.targetTouches[0]:e,clientX=_ref.clientX,clientY=_ref.clientY;setOrigin({x:position.x,y:position.y,px:clientX,py:clientY});};var handlePointerMove=function handlePointerMove(e){props===null||props===void 0?void 0:props.onMove();var _ref2=isMobile?e.targetTouches[0]:e,clientX=_ref2.clientX,clientY=_ref2.clientY;if(origin){var dx=clientX-origin.px;var dy=clientY-origin.py;var x=origin.x+dx;var y=origin.y+dy;var _props$windowSize=props.windowSize,w=_props$windowSize.w,h=_props$windowSize.h;x=limitNumber(x,0,w-props.width);y=limitNumber(y,0,h-props.height);setPosition({x:x,y:y});}};var handlePointerUp=function handlePointerUp(e){setOrigin(null);};var handleClick=function handleClick(e){e.stopPropagation();};var touchProps=isMobile?{onTouchStart:handlePointerDown,onTouchMove:handlePointerMove,onTouchEnd:handlePointerUp}:{onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp:handlePointerUp};(0,react.useEffect)(function(){var _props$windowSize2=props.windowSize,w=_props$windowSize2.w,h=_props$windowSize2.h;setPosition(function(_ref3){var x=_ref3.x,y=_ref3.y;return{x:limitNumber(x,0,w-props.width),y:limitNumber(y,0,h-props.height)};});},[props.windowSize,props.width,props.height]);return/*#__PURE__*/(0,jsx_runtime.jsxs)("div",{style:{position:"fixed",left:position.x,top:position.y,zIndex:2147483647},onClick:handleClick,children:[/*#__PURE__*/(0,jsx_runtime.jsx)("div",_objectSpread2(_objectSpread2({style:{touchAction:"none"}},touchProps),{},{children:props.handler})),/*#__PURE__*/(0,jsx_runtime.jsx)("div",{children:props.children})]});}
|
||||||
// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Close.js
|
// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Close.js
|
||||||
var icons_material_Close = __webpack_require__(1198);
|
var icons_material_Close = __webpack_require__(1198);
|
||||||
;// CONCATENATED MODULE: ./node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js
|
;// CONCATENATED MODULE: ./node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "__MSG_app_name__",
|
"name": "__MSG_app_name__",
|
||||||
"description": "__MSG_app_description__",
|
"description": "__MSG_app_description__",
|
||||||
"version": "1.3.3",
|
"version": "1.3.5",
|
||||||
"default_locale": "zh",
|
"default_locale": "zh",
|
||||||
"author": "Gabe<yugang2002@gmail.com>",
|
"author": "Gabe<yugang2002@gmail.com>",
|
||||||
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"name": "__MSG_app_name__",
|
"name": "__MSG_app_name__",
|
||||||
"description": "__MSG_app_description__",
|
"description": "__MSG_app_description__",
|
||||||
"version": "1.3.3",
|
"version": "1.3.5",
|
||||||
"default_locale": "zh",
|
"default_locale": "zh",
|
||||||
"author": "Gabe<yugang2002@gmail.com>",
|
"author": "Gabe<yugang2002@gmail.com>",
|
||||||
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "kiss-translator",
|
"name": "kiss-translator",
|
||||||
"description": "A simple translator extension",
|
"description": "A simple translator extension",
|
||||||
"version": "1.3.3",
|
"version": "1.3.5",
|
||||||
"author": "Gabe<yugang2002@gmail.com>",
|
"author": "Gabe<yugang2002@gmail.com>",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "__MSG_app_name__",
|
"name": "__MSG_app_name__",
|
||||||
"description": "__MSG_app_description__",
|
"description": "__MSG_app_description__",
|
||||||
"version": "1.3.3",
|
"version": "1.3.5",
|
||||||
"default_locale": "zh",
|
"default_locale": "zh",
|
||||||
"author": "Gabe<yugang2002@gmail.com>",
|
"author": "Gabe<yugang2002@gmail.com>",
|
||||||
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"name": "__MSG_app_name__",
|
"name": "__MSG_app_name__",
|
||||||
"description": "__MSG_app_description__",
|
"description": "__MSG_app_description__",
|
||||||
"version": "1.3.3",
|
"version": "1.3.5",
|
||||||
"default_locale": "zh",
|
"default_locale": "zh",
|
||||||
"author": "Gabe<yugang2002@gmail.com>",
|
"author": "Gabe<yugang2002@gmail.com>",
|
||||||
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
"homepage_url": "https://github.com/fishjar/kiss-translator",
|
||||||
|
|||||||
1
src/libs/mobile.js
Normal file
1
src/libs/mobile.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export const isMobile = "ontouchstart" in document.documentElement;
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { limitNumber } from "../../libs/utils";
|
import { limitNumber } from "../../libs/utils";
|
||||||
|
import { isMobile } from "../../libs/mobile";
|
||||||
|
|
||||||
export default function Draggable(props) {
|
export default function Draggable(props) {
|
||||||
const [origin, setOrigin] = useState(null);
|
const [origin, setOrigin] = useState(null);
|
||||||
@@ -9,21 +10,23 @@ export default function Draggable(props) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const handlePointerDown = (e) => {
|
const handlePointerDown = (e) => {
|
||||||
e.target.setPointerCapture(e.pointerId);
|
!isMobile && e.target.setPointerCapture(e.pointerId);
|
||||||
props?.onStart();
|
props?.onStart();
|
||||||
|
const { clientX, clientY } = isMobile ? e.targetTouches[0] : e;
|
||||||
setOrigin({
|
setOrigin({
|
||||||
x: position.x,
|
x: position.x,
|
||||||
y: position.y,
|
y: position.y,
|
||||||
px: e.clientX,
|
px: clientX,
|
||||||
py: e.clientY,
|
py: clientY,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const handlePointerMove = (e) => {
|
const handlePointerMove = (e) => {
|
||||||
props?.onMove();
|
props?.onMove();
|
||||||
|
const { clientX, clientY } = isMobile ? e.targetTouches[0] : e;
|
||||||
if (origin) {
|
if (origin) {
|
||||||
const dx = e.clientX - origin.px;
|
const dx = clientX - origin.px;
|
||||||
const dy = e.clientY - origin.py;
|
const dy = clientY - origin.py;
|
||||||
let x = origin.x + dx;
|
let x = origin.x + dx;
|
||||||
let y = origin.y + dy;
|
let y = origin.y + dy;
|
||||||
const { w, h } = props.windowSize;
|
const { w, h } = props.windowSize;
|
||||||
@@ -41,6 +44,18 @@ export default function Draggable(props) {
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const touchProps = isMobile
|
||||||
|
? {
|
||||||
|
onTouchStart: handlePointerDown,
|
||||||
|
onTouchMove: handlePointerMove,
|
||||||
|
onTouchEnd: handlePointerUp,
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
onPointerDown: handlePointerDown,
|
||||||
|
onPointerMove: handlePointerMove,
|
||||||
|
onPointerUp: handlePointerUp,
|
||||||
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const { w, h } = props.windowSize;
|
const { w, h } = props.windowSize;
|
||||||
setPosition(({ x, y }) => ({
|
setPosition(({ x, y }) => ({
|
||||||
@@ -60,9 +75,10 @@ export default function Draggable(props) {
|
|||||||
onClick={handleClick}
|
onClick={handleClick}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
onPointerDown={handlePointerDown}
|
style={{
|
||||||
onPointerMove={handlePointerMove}
|
touchAction: "none",
|
||||||
onPointerUp={handlePointerUp}
|
}}
|
||||||
|
{...touchProps}
|
||||||
>
|
>
|
||||||
{props.handler}
|
{props.handler}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user