diff --git a/src/pages/setting.tsx b/src/pages/setting.tsx index 002dea44f83578f7e1951a3090323263c35b0139..0770a2de4f5ef2c05e4c54b517daa816b6287b5b 100644 --- a/src/pages/setting.tsx +++ b/src/pages/setting.tsx @@ -1,3 +1,4 @@ +import { useState } from "react"; import { useRecoilState } from "recoil"; import { Box, @@ -14,6 +15,7 @@ import { } from "@mui/material"; import { atomPaletteMode } from "../states/setting"; import PaletteSwitch from "../components/palette-switch"; +import { setSysProxy } from "../services/command"; const MiniListItem = styled(ListItem)(({ theme }) => ({ paddingTop: 5, @@ -22,6 +24,20 @@ const MiniListItem = styled(ListItem)(({ theme }) => ({ const SettingPage = () => { const [mode, setMode] = useRecoilState(atomPaletteMode); + const [proxy, setProxy] = useState(false); + + const onSysproxy = (enable: boolean) => { + const value = proxy; + setProxy(enable); + setSysProxy(enable) + .then(() => { + console.log("success"); + }) + .catch((err) => { + setProxy(value); // recover + console.log(err); + }); + }; return ( <Box sx={{ width: 0.9, maxWidth: "850px", mx: "auto", mb: 2 }}> @@ -48,7 +64,11 @@ const SettingPage = () => { <MiniListItem> <ListItemText primary="设置系统代ç†" /> - <Switch edge="end" /> + <Switch + edge="end" + checked={proxy} + onChange={(_e, c) => onSysproxy(c)} + /> </MiniListItem> <MiniListItem> diff --git a/src/services/command.ts b/src/services/command.ts index 57bd471d1f8b2bc822724012cb0b8fc5dcd65c46..7489a45e0b522b690ce84e9c2e87dfbb2374dff3 100644 --- a/src/services/command.ts +++ b/src/services/command.ts @@ -48,3 +48,7 @@ export async function setProfiles(current: number, profile: ProfileItem) { export async function putProfiles(current: number) { return invoke<void>("put_profiles", { current }); } + +export async function setSysProxy(enable: boolean) { + return invoke<void>("set_sys_proxy", { enable }); +}