fix any crash error

This commit is contained in:
pompurin404 2024-08-14 23:09:35 +08:00
parent 9be6617294
commit 0394548f91
No known key found for this signature in database
5 changed files with 23 additions and 18 deletions

View File

@ -12,6 +12,7 @@ const ProxyProvider: React.FC = () => {
const { data, mutate } = useSWR('mihomoProxyProviders', mihomoProxyProviders)
const providers = useMemo(() => {
if (!data) return []
if (!data.providers) return []
return Object.keys(data.providers)
.map((key) => data.providers[key])
.filter((provider) => {

View File

@ -11,6 +11,7 @@ const RuleProvider: React.FC = () => {
const { data, mutate } = useSWR('mihomoRuleProviders', mihomoRuleProviders)
const providers = useMemo(() => {
if (!data) return []
if (!data.providers) return []
return Object.keys(data.providers).map((key) => data.providers[key])
}, [data])
const [updating, setUpdating] = useState(Array(providers.length).fill(false))

View File

@ -11,7 +11,7 @@ const ProxyCard: React.FC = () => {
const navigate = useNavigate()
const location = useLocation()
const match = location.pathname.includes('/proxies')
const { data: proxies = { proxies: {} } } = useSWR('mihomoProxies', mihomoProxies)
const { data: proxies } = useSWR('mihomoProxies', mihomoProxies)
const {
attributes,
listeners,
@ -24,6 +24,8 @@ const ProxyCard: React.FC = () => {
})
const transform = tf ? { x: tf.x, y: tf.y, scaleX: 1, scaleY: 1 } : null
const filtered = useMemo(() => {
if (!proxies) return []
if (!proxies.proxies) return []
return Object.keys(proxies.proxies).filter((key) => 'all' in proxies.proxies[key])
}, [proxies])

View File

@ -32,24 +32,24 @@ const Proxies: React.FC = () => {
} = appConfig || {}
const groups = useMemo(() => {
if (!proxies) return []
if (!proxies.proxies) return []
const groups: IMihomoGroup[] = []
if (proxies && proxies.proxies) {
runtime?.['proxy-groups']?.forEach((group: { name: string; url?: string }) => {
group = Object.assign(group, group['<<'])
const { name, url } = group
if (
proxies.proxies[name] &&
isGroup(proxies.proxies[name]) &&
!proxies.proxies[name].hidden
) {
const newGroup = proxies.proxies[name]
newGroup.testUrl = url
groups.push(newGroup as IMihomoGroup)
}
})
if (!groups.find((group) => group.name === 'GLOBAL')) {
groups.push(proxies.proxies['GLOBAL'] as IMihomoGroup)
runtime?.['proxy-groups']?.forEach((group: { name: string; url?: string }) => {
group = Object.assign(group, group['<<'])
const { name, url } = group
if (
proxies.proxies[name] &&
isGroup(proxies.proxies[name]) &&
!proxies.proxies[name].hidden
) {
const newGroup = proxies.proxies[name]
newGroup.testUrl = url
groups.push(newGroup as IMihomoGroup)
}
})
if (!groups.find((group) => group.name === 'GLOBAL')) {
groups.push(proxies.proxies['GLOBAL'] as IMihomoGroup)
}
return groups
}, [proxies, runtime])

View File

@ -7,12 +7,13 @@ import useSWR from 'swr'
import { mihomoRules } from '@renderer/utils/ipc'
const Rules: React.FC = () => {
const { data: rules = { rules: [] } } = useSWR<IMihomoRulesInfo>('mihomoRules', mihomoRules, {
const { data: rules } = useSWR<IMihomoRulesInfo>('mihomoRules', mihomoRules, {
refreshInterval: 5000
})
const [filter, setFilter] = useState('')
const filteredRules = useMemo(() => {
if (!rules) return []
if (filter === '') return rules.rules
return rules.rules.filter((rule) => {
return (