mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2025-12-28 05:30:29 +08:00
fix any crash error
This commit is contained in:
parent
9be6617294
commit
0394548f91
@ -12,6 +12,7 @@ const ProxyProvider: React.FC = () => {
|
|||||||
const { data, mutate } = useSWR('mihomoProxyProviders', mihomoProxyProviders)
|
const { data, mutate } = useSWR('mihomoProxyProviders', mihomoProxyProviders)
|
||||||
const providers = useMemo(() => {
|
const providers = useMemo(() => {
|
||||||
if (!data) return []
|
if (!data) return []
|
||||||
|
if (!data.providers) return []
|
||||||
return Object.keys(data.providers)
|
return Object.keys(data.providers)
|
||||||
.map((key) => data.providers[key])
|
.map((key) => data.providers[key])
|
||||||
.filter((provider) => {
|
.filter((provider) => {
|
||||||
|
|||||||
@ -11,6 +11,7 @@ const RuleProvider: React.FC = () => {
|
|||||||
const { data, mutate } = useSWR('mihomoRuleProviders', mihomoRuleProviders)
|
const { data, mutate } = useSWR('mihomoRuleProviders', mihomoRuleProviders)
|
||||||
const providers = useMemo(() => {
|
const providers = useMemo(() => {
|
||||||
if (!data) return []
|
if (!data) return []
|
||||||
|
if (!data.providers) return []
|
||||||
return Object.keys(data.providers).map((key) => data.providers[key])
|
return Object.keys(data.providers).map((key) => data.providers[key])
|
||||||
}, [data])
|
}, [data])
|
||||||
const [updating, setUpdating] = useState(Array(providers.length).fill(false))
|
const [updating, setUpdating] = useState(Array(providers.length).fill(false))
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const ProxyCard: React.FC = () => {
|
|||||||
const navigate = useNavigate()
|
const navigate = useNavigate()
|
||||||
const location = useLocation()
|
const location = useLocation()
|
||||||
const match = location.pathname.includes('/proxies')
|
const match = location.pathname.includes('/proxies')
|
||||||
const { data: proxies = { proxies: {} } } = useSWR('mihomoProxies', mihomoProxies)
|
const { data: proxies } = useSWR('mihomoProxies', mihomoProxies)
|
||||||
const {
|
const {
|
||||||
attributes,
|
attributes,
|
||||||
listeners,
|
listeners,
|
||||||
@ -24,6 +24,8 @@ const ProxyCard: React.FC = () => {
|
|||||||
})
|
})
|
||||||
const transform = tf ? { x: tf.x, y: tf.y, scaleX: 1, scaleY: 1 } : null
|
const transform = tf ? { x: tf.x, y: tf.y, scaleX: 1, scaleY: 1 } : null
|
||||||
const filtered = useMemo(() => {
|
const filtered = useMemo(() => {
|
||||||
|
if (!proxies) return []
|
||||||
|
if (!proxies.proxies) return []
|
||||||
return Object.keys(proxies.proxies).filter((key) => 'all' in proxies.proxies[key])
|
return Object.keys(proxies.proxies).filter((key) => 'all' in proxies.proxies[key])
|
||||||
}, [proxies])
|
}, [proxies])
|
||||||
|
|
||||||
|
|||||||
@ -32,8 +32,9 @@ const Proxies: React.FC = () => {
|
|||||||
} = appConfig || {}
|
} = appConfig || {}
|
||||||
|
|
||||||
const groups = useMemo(() => {
|
const groups = useMemo(() => {
|
||||||
|
if (!proxies) return []
|
||||||
|
if (!proxies.proxies) return []
|
||||||
const groups: IMihomoGroup[] = []
|
const groups: IMihomoGroup[] = []
|
||||||
if (proxies && proxies.proxies) {
|
|
||||||
runtime?.['proxy-groups']?.forEach((group: { name: string; url?: string }) => {
|
runtime?.['proxy-groups']?.forEach((group: { name: string; url?: string }) => {
|
||||||
group = Object.assign(group, group['<<'])
|
group = Object.assign(group, group['<<'])
|
||||||
const { name, url } = group
|
const { name, url } = group
|
||||||
@ -50,7 +51,6 @@ const Proxies: React.FC = () => {
|
|||||||
if (!groups.find((group) => group.name === 'GLOBAL')) {
|
if (!groups.find((group) => group.name === 'GLOBAL')) {
|
||||||
groups.push(proxies.proxies['GLOBAL'] as IMihomoGroup)
|
groups.push(proxies.proxies['GLOBAL'] as IMihomoGroup)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return groups
|
return groups
|
||||||
}, [proxies, runtime])
|
}, [proxies, runtime])
|
||||||
|
|
||||||
|
|||||||
@ -7,12 +7,13 @@ import useSWR from 'swr'
|
|||||||
import { mihomoRules } from '@renderer/utils/ipc'
|
import { mihomoRules } from '@renderer/utils/ipc'
|
||||||
|
|
||||||
const Rules: React.FC = () => {
|
const Rules: React.FC = () => {
|
||||||
const { data: rules = { rules: [] } } = useSWR<IMihomoRulesInfo>('mihomoRules', mihomoRules, {
|
const { data: rules } = useSWR<IMihomoRulesInfo>('mihomoRules', mihomoRules, {
|
||||||
refreshInterval: 5000
|
refreshInterval: 5000
|
||||||
})
|
})
|
||||||
const [filter, setFilter] = useState('')
|
const [filter, setFilter] = useState('')
|
||||||
|
|
||||||
const filteredRules = useMemo(() => {
|
const filteredRules = useMemo(() => {
|
||||||
|
if (!rules) return []
|
||||||
if (filter === '') return rules.rules
|
if (filter === '') return rules.rules
|
||||||
return rules.rules.filter((rule) => {
|
return rules.rules.filter((rule) => {
|
||||||
return (
|
return (
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user