diff --git a/package.json b/package.json
index 480839d..15be2c1 100644
--- a/package.json
+++ b/package.json
@@ -18,10 +18,10 @@
"webextension-polyfill": "^0.10.0"
},
"scripts": {
- "start": "react-app-rewired start",
- "build": "BUILD_PATH=./build/chrome REACT_APP_BROWSER=chrome react-app-rewired build && rm ./build/chrome/manifest.firefox.json",
- "build:edge": "BUILD_PATH=./build/edge REACT_APP_BROWSER=edge react-app-rewired build && rm ./build/edge/manifest.firefox.json",
- "build:firefox": "BUILD_PATH=./build/firefox REACT_APP_BROWSER=firefox react-app-rewired build && rm ./build/firefox/manifest.json && mv ./build/firefox/manifest.firefox.json ./build/firefox/manifest.json",
+ "start": "REACT_APP_CLIENT=web react-app-rewired start",
+ "build": "BUILD_PATH=./build/chrome REACT_APP_CLIENT=chrome react-app-rewired build && rm ./build/chrome/manifest.firefox.json",
+ "build:edge": "BUILD_PATH=./build/edge REACT_APP_CLIENT=edge react-app-rewired build && rm ./build/edge/manifest.firefox.json",
+ "build:firefox": "BUILD_PATH=./build/firefox REACT_APP_CLIENT=firefox react-app-rewired build && rm ./build/firefox/manifest.json && mv ./build/firefox/manifest.firefox.json ./build/firefox/manifest.json",
"build:all": "yarn build && yarn build:edge && yarn build:firefox",
"dist": "yarn build:all && rm -r dist && cp -r build dist",
"test": "react-app-rewired test",
diff --git a/src/background.js b/src/background.js
index 50d5fb7..73f893e 100644
--- a/src/background.js
+++ b/src/background.js
@@ -1,4 +1,4 @@
-import browser from "webextension-polyfill";
+import { browser } from "webextension-polyfill";
import {
MSG_FETCH,
DEFAULT_SETTING,
diff --git a/src/config/index.js b/src/config/index.js
index b5ba8cc..4b2952b 100644
--- a/src/config/index.js
+++ b/src/config/index.js
@@ -10,6 +10,12 @@ export const STOKEY_SETTING = `${APP_NAME}_setting`;
export const STOKEY_RULES = `${APP_NAME}_rules`;
export const STOKEY_SYNC = `${APP_NAME}_sync`;
+export const CLIENT_WEB = "web";
+export const CLIENT_CHROME = "chrome";
+export const CLIENT_EDGE = "edge";
+export const CLIENT_FIREFOX = "firefox";
+export const CLIENT_USERSCRIPT = "userscript";
+
export const KV_HEADER_KEY = "X-KISS-PSK";
export const KV_RULES_KEY = "KT_RULES";
export const KV_SETTING_KEY = "KT_SETTING";
diff --git a/src/config/rules.js b/src/config/rules.js
index b11e15a..6075540 100644
--- a/src/config/rules.js
+++ b/src/config/rules.js
@@ -1,7 +1,7 @@
const els = `li, p, h1, h2, h3, h4, h5, h6, dd`;
export const DEFAULT_SELECTOR =
- process.env.REACT_APP_BROWSER === "firefox"
+ process.env.REACT_APP_CLIENT === "firefox"
? `:is(${els})`
: `:is(${els}):not(:has(:is(${els})))`;
diff --git a/src/content.js b/src/content.js
index a7586c2..3bd81b4 100644
--- a/src/content.js
+++ b/src/content.js
@@ -1,4 +1,4 @@
-import browser from "./libs/browser";
+import { browser } from "./libs/browser";
import { createRoot } from "react-dom/client";
import {
APP_LCNAME,
diff --git a/src/hooks/Storage.js b/src/hooks/Storage.js
index 78c8beb..8fca3fa 100644
--- a/src/hooks/Storage.js
+++ b/src/hooks/Storage.js
@@ -1,5 +1,5 @@
import { createContext, useContext, useEffect, useState } from "react";
-import browser from "../libs/browser";
+import { browser } from "../libs/browser";
import {
STOKEY_SETTING,
STOKEY_RULES,
diff --git a/src/hooks/Translate.js b/src/hooks/Translate.js
index a85f657..1f3465f 100644
--- a/src/hooks/Translate.js
+++ b/src/hooks/Translate.js
@@ -1,7 +1,7 @@
import { useEffect } from "react";
import { useState } from "react";
import { transPool } from "../libs/pool";
-import browser from "../libs/browser";
+import { browser } from "../libs/browser";
import { MSG_TRANS_PUTRULE } from "../config";
import { detectLang } from "../libs";
diff --git a/src/libs/browser.js b/src/libs/browser.js
index 064987d..67fc24a 100644
--- a/src/libs/browser.js
+++ b/src/libs/browser.js
@@ -10,6 +10,5 @@ function _browser() {
}
}
-const browser = _browser();
-
-export default browser;
+export const browser = _browser();
+export const client = process.env.REACT_APP_CLIENT;
diff --git a/src/libs/fetch.js b/src/libs/fetch.js
index 3d45edf..a40f197 100644
--- a/src/libs/fetch.js
+++ b/src/libs/fetch.js
@@ -1,4 +1,4 @@
-import browser from "./browser";
+import { browser } from "./browser";
import { sendMsg } from "./msg";
import {
MSG_FETCH,
diff --git a/src/libs/index.js b/src/libs/index.js
index 4321643..5c9f01b 100644
--- a/src/libs/index.js
+++ b/src/libs/index.js
@@ -5,7 +5,7 @@ import {
STOKEY_RULES,
DEFAULT_RULE,
} from "../config";
-import browser from "./browser";
+import { browser } from "./browser";
/**
* 获取节点列表并转为数组
diff --git a/src/libs/msg.js b/src/libs/msg.js
index b7859d5..f96768a 100644
--- a/src/libs/msg.js
+++ b/src/libs/msg.js
@@ -1,4 +1,4 @@
-import browser from "./browser";
+import { browser } from "./browser";
/**
* 发送消息给background
diff --git a/src/libs/storage.js b/src/libs/storage.js
index 5840d2e..61563c7 100644
--- a/src/libs/storage.js
+++ b/src/libs/storage.js
@@ -1,4 +1,4 @@
-import browser from "./browser";
+import { browser } from "./browser";
async function set(key, val) {
if (browser?.storage) {
diff --git a/src/views/Popup/index.js b/src/views/Popup/index.js
index bc172ce..aa60902 100644
--- a/src/views/Popup/index.js
+++ b/src/views/Popup/index.js
@@ -6,7 +6,7 @@ import FormControlLabel from "@mui/material/FormControlLabel";
import Switch from "@mui/material/Switch";
import Button from "@mui/material/Button";
import { sendTabMsg } from "../../libs/msg";
-import browser from "../../libs/browser";
+import { browser } from "../../libs/browser";
import { useI18n } from "../../hooks/I18n";
import TextField from "@mui/material/TextField";
import {
@@ -90,7 +90,9 @@ export default function Popup() {
onChange={handleChange}
>
{OPT_TRANS_ALL.map((item) => (
-
+
))}
@@ -103,7 +105,9 @@ export default function Popup() {
onChange={handleChange}
>
{OPT_LANGS_FROM.map(([lang, name]) => (
-
+
))}
@@ -116,7 +120,9 @@ export default function Popup() {
onChange={handleChange}
>
{OPT_LANGS_TO.map(([lang, name]) => (
-
+
))}
@@ -129,7 +135,9 @@ export default function Popup() {
onChange={handleChange}
>
{OPT_STYLE_ALL.map((item) => (
-
+
))}