Add Func 链式代理 (#4624)

* 添加链式代理gui和语言支持
在Iruntime中添跟新链式代理配置方法
同时添加了cmd

* 修复读取运行时代理链配置文件bug

* t

* 完成链式代理配置构造

* 修复获取链式代理运行时配置的bug

* 完整的链式代理功能
This commit is contained in:
Junkai W.
2025-09-15 07:44:54 +08:00
committed by GitHub
parent a1f468202f
commit f2073a2f83
25 changed files with 1246 additions and 316 deletions

View File

@@ -0,0 +1,48 @@
import React, { createContext, useContext, useState, useCallback } from "react";
interface ChainProxyContextType {
isChainMode: boolean;
setChainMode: (isChain: boolean) => void;
chainConfigData: string | null;
setChainConfigData: (data: string | null) => void;
}
const ChainProxyContext = createContext<ChainProxyContextType | null>(null);
export const ChainProxyProvider = ({
children,
}: {
children: React.ReactNode;
}) => {
const [isChainMode, setIsChainMode] = useState(false);
const [chainConfigData, setChainConfigData] = useState<string | null>(null);
const setChainMode = useCallback((isChain: boolean) => {
setIsChainMode(isChain);
}, []);
const setChainConfigDataCallback = useCallback((data: string | null) => {
setChainConfigData(data);
}, []);
return (
<ChainProxyContext.Provider
value={{
isChainMode,
setChainMode,
chainConfigData,
setChainConfigData: setChainConfigDataCallback,
}}
>
{children}
</ChainProxyContext.Provider>
);
};
export const useChainProxy = () => {
const context = useContext(ChainProxyContext);
if (!context) {
throw new Error("useChainProxy must be used within a ChainProxyProvider");
}
return context;
};