import { Button, Input, Tab, Tabs } from '@nextui-org/react' import BasePage from '@renderer/components/base/base-page' import SettingCard from '@renderer/components/base/base-setting-card' import SettingItem from '@renderer/components/base/base-setting-item' import PacEditorViewer from '@renderer/components/sysproxy/pac-editor-modal' import { useAppConfig } from '@renderer/hooks/use-config' import { triggerSysProxy } from '@renderer/utils/ipc' import { Key, useState } from 'react' import React from 'react' const defaultPacScript = ` function FindProxyForURL(url, host) { return "PROXY 127.0.0.1:%mixed-port%; SOCKS5 127.0.0.1:%mixed-port%; DIRECT;"; } ` const Sysproxy: React.FC = () => { const { appConfig, patchAppConfig } = useAppConfig() const { sysProxy } = appConfig || { sysProxy: { enable: false } } const [values, setValues] = useState(sysProxy) const [openPacEditor, setOpenPacEditor] = useState(false) const onSave = async (): Promise => { // check valid TODO await patchAppConfig({ sysProxy: values }) try { await triggerSysProxy(true) await patchAppConfig({ sysProxy: { enable: true } }) } catch (e) { await patchAppConfig({ sysProxy: { enable: false } }) console.error(e) } } return ( 保存 } > {openPacEditor && ( setOpenPacEditor(false)} onConfirm={(script: string) => { setValues({ ...values, pacScript: script }) setOpenPacEditor(false) }} /> )} { setValues({ ...values, host: v }) }} /> setValues({ ...values, mode: key as SysProxyMode })} > ) } export default Sysproxy