import { createContext, use } from 'react' import { BaseConfig, ProxyProvider, Rule, RuleProvider, } from 'tauri-plugin-mihomo-api' export interface AppDataContextType { proxies: any clashConfig: BaseConfig rules: Rule[] sysproxy: any runningMode?: string uptime: number proxyProviders: Record ruleProviders: Record systemProxyAddress: string refreshProxy: () => Promise refreshClashConfig: () => Promise refreshRules: () => Promise refreshSysproxy: () => Promise refreshProxyProviders: () => Promise refreshRuleProviders: () => Promise refreshAll: () => Promise } export interface ConnectionWithSpeed extends IConnectionsItem { curUpload: number curDownload: number } export interface ConnectionSpeedData { id: string upload: number download: number timestamp: number } export const AppDataContext = createContext(null) export const useAppData = () => { const context = use(AppDataContext) if (!context) { throw new Error('useAppData must be used within AppDataProvider') } return context }