diff --git a/src/main/core/manager.ts b/src/main/core/manager.ts index 3d2c5e6..7bebdc6 100644 --- a/src/main/core/manager.ts +++ b/src/main/core/manager.ts @@ -101,6 +101,7 @@ async function checkProfile(): Promise { } export async function autoGrantCorePermition(corePath: string): Promise { + if (process.platform === 'win32') return const { encryptedPassword } = await getAppConfig() const execPromise = promisify(exec) if (encryptedPassword && isEncryptionAvailable()) { diff --git a/src/renderer/src/components/base/base-page.tsx b/src/renderer/src/components/base/base-page.tsx index 6b4b624..dff49a2 100644 --- a/src/renderer/src/components/base/base-page.tsx +++ b/src/renderer/src/components/base/base-page.tsx @@ -15,8 +15,8 @@ const BasePage = forwardRef((props, ref) => { return (
-
-
+
+
{props.title}
{props.header}
diff --git a/src/renderer/src/components/logs/log-item.tsx b/src/renderer/src/components/logs/log-item.tsx index 570006c..6608a4b 100644 --- a/src/renderer/src/components/logs/log-item.tsx +++ b/src/renderer/src/components/logs/log-item.tsx @@ -7,18 +7,20 @@ const colorMap = { info: 'primary', debug: 'default' } -const LogItem: React.FC = (props) => { - const { type, payload, time } = props +const LogItem: React.FC = (props) => { + const { type, payload, time, index } = props return ( - - -
- {props.type.toUpperCase()} -
- {time} -
- {payload} -
+
+ + +
+ {props.type.toUpperCase()} +
+ {time} +
+ {payload} +
+
) } diff --git a/src/renderer/src/components/rules/rule-item.tsx b/src/renderer/src/components/rules/rule-item.tsx index 21eb5de..c01e160 100644 --- a/src/renderer/src/components/rules/rule-item.tsx +++ b/src/renderer/src/components/rules/rule-item.tsx @@ -1,18 +1,20 @@ import { Card, CardBody } from '@nextui-org/react' import React from 'react' -const RuleItem: React.FC = (props) => { - const { type, payload, proxy } = props +const RuleItem: React.FC = (props) => { + const { type, payload, proxy, index } = props return ( - - -
{payload}
-
-
{type}
-
{proxy}
-
-
-
+
+ + +
{payload}
+
+
{type}
+
{proxy}
+
+
+
+
) } diff --git a/src/renderer/src/pages/connections.tsx b/src/renderer/src/pages/connections.tsx index 84a4d06..9ba4c85 100644 --- a/src/renderer/src/pages/connections.tsx +++ b/src/renderer/src/pages/connections.tsx @@ -6,7 +6,7 @@ import { stopMihomoConnections } from '@renderer/utils/ipc' import { Key, useEffect, useMemo, useState } from 'react' -import { Button, Input } from '@nextui-org/react' +import { Button, Divider, Input } from '@nextui-org/react' import { IoCloseCircle } from 'react-icons/io5' import { calcTraffic } from '@renderer/utils/calc' import { Table, TableHeader, TableColumn, TableBody, TableRow, TableCell } from '@nextui-org/react' @@ -83,14 +83,17 @@ const Connections: React.FC = () => { connection={selectedConnection} /> )} -
- +
+
+ +
+
{ diff --git a/src/renderer/src/pages/logs.tsx b/src/renderer/src/pages/logs.tsx index ccfc159..f7d142b 100644 --- a/src/renderer/src/pages/logs.tsx +++ b/src/renderer/src/pages/logs.tsx @@ -2,7 +2,7 @@ import BasePage from '@renderer/components/base/base-page' import { startMihomoLogs, stopMihomoLogs } from '@renderer/utils/ipc' import LogItem from '@renderer/components/logs/log-item' import { useEffect, useMemo, useRef, useState } from 'react' -import { Button, Input } from '@nextui-org/react' +import { Button, Divider, Input } from '@nextui-org/react' import { Virtuoso, VirtuosoHandle } from 'react-virtuoso' const Logs: React.FC = () => { @@ -45,8 +45,8 @@ const Logs: React.FC = () => { return ( -
-
+
+
{ 追踪
+
{ - const log = filteredLogs[index] + itemContent={(i, log) => { return ( { } > -
- { - navigator.clipboard.readText().then((text) => { - setUrl(text) - }) - }} - > - - - } - /> - - +
+
+ { + navigator.clipboard.readText().then((text) => { + setUrl(text) + }) + }} + > + + + } + /> + + +
+
{ diff --git a/src/renderer/src/pages/profiles.tsx b/src/renderer/src/pages/profiles.tsx index 027cb7e..a70a835 100644 --- a/src/renderer/src/pages/profiles.tsx +++ b/src/renderer/src/pages/profiles.tsx @@ -1,4 +1,4 @@ -import { Button, Checkbox, Input } from '@nextui-org/react' +import { Button, Checkbox, Divider, Input } from '@nextui-org/react' import BasePage from '@renderer/components/base/base-page' import ProfileItem from '@renderer/components/profiles/profile-item' import { useProfileConfig } from '@renderer/hooks/use-profile-config' @@ -122,70 +122,73 @@ const Profiles: React.FC = () => { } > -
- - - - 代理 - - - } - /> - - - + + 代理 + + } - }} - > - 打开 - + /> + + + +
+
{ diff --git a/src/renderer/src/pages/rules.tsx b/src/renderer/src/pages/rules.tsx index 52e17f0..8966237 100644 --- a/src/renderer/src/pages/rules.tsx +++ b/src/renderer/src/pages/rules.tsx @@ -2,14 +2,12 @@ import BasePage from '@renderer/components/base/base-page' import RuleItem from '@renderer/components/rules/rule-item' import { Virtuoso } from 'react-virtuoso' import { useMemo, useState } from 'react' -import { Input } from '@nextui-org/react' +import { Divider, Input } from '@nextui-org/react' import useSWR from 'swr' import { mihomoRules } from '@renderer/utils/ipc' const Rules: React.FC = () => { - const { data: rules } = useSWR('mihomoRules', mihomoRules, { - refreshInterval: 5000 - }) + const { data: rules } = useSWR('mihomoRules', mihomoRules) const [filter, setFilter] = useState('') const filteredRules = useMemo(() => { @@ -24,20 +22,29 @@ const Rules: React.FC = () => { return ( -
- +
+
+ +
+
( - + itemContent={(i, rule) => ( + )} />