clash-verge-rev/src/providers/app-data-context.ts
Slinetrac c672a6fef3
refactor: lint (#6511)
* refactor: lint

* chore: remove eslint-plugin/config-prettier
2026-03-15 07:40:11 +00:00

52 lines
1.1 KiB
TypeScript

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<string, ProxyProvider>
ruleProviders: Record<string, RuleProvider>
systemProxyAddress: string
refreshProxy: () => Promise<any>
refreshClashConfig: () => Promise<any>
refreshRules: () => Promise<any>
refreshSysproxy: () => Promise<any>
refreshProxyProviders: () => Promise<any>
refreshRuleProviders: () => Promise<any>
refreshAll: () => Promise<any>
}
export interface ConnectionWithSpeed extends IConnectionsItem {
curUpload: number
curDownload: number
}
export interface ConnectionSpeedData {
id: string
upload: number
download: number
timestamp: number
}
export const AppDataContext = createContext<AppDataContextType | null>(null)
export const useAppData = () => {
const context = use(AppDataContext)
if (!context) {
throw new Error('useAppData must be used within AppDataProvider')
}
return context
}