mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/mihomo-party-org/clash-party.git
synced 2026-09-20 08:03:39 +08:00
@@ -53,11 +53,9 @@ const RuleProvider: React.FC = () => {
|
||||
}, [showDetails.title])
|
||||
|
||||
const { data, mutate } = useSWR('mihomoRuleProviders', mihomoRuleProviders)
|
||||
const providers = useMemo(() => {
|
||||
const allProviders = useMemo(() => {
|
||||
if (!data || !data.providers) return []
|
||||
return Object.values(data.providers)
|
||||
.filter((p) => !filter || includesIgnoreCase(p.name, filter))
|
||||
.sort((a, b) => {
|
||||
return Object.values(data.providers).sort((a, b) => {
|
||||
if (a.vehicleType === 'File' && b.vehicleType !== 'File') {
|
||||
return -1
|
||||
}
|
||||
@@ -66,7 +64,10 @@ const RuleProvider: React.FC = () => {
|
||||
}
|
||||
return 0
|
||||
})
|
||||
}, [data, filter])
|
||||
}, [data])
|
||||
const providers = useMemo(() => {
|
||||
return allProviders.filter((p) => !filter || includesIgnoreCase(p.name, filter))
|
||||
}, [allProviders, filter])
|
||||
const [updating, setUpdating] = useState(Array(providers.length).fill(false))
|
||||
|
||||
const onUpdate = async (name: string, index: number): Promise<void> => {
|
||||
@@ -87,7 +88,7 @@ const RuleProvider: React.FC = () => {
|
||||
}
|
||||
}
|
||||
|
||||
if (!providers.length) {
|
||||
if (!allProviders.length) {
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -137,7 +138,8 @@ const RuleProvider: React.FC = () => {
|
||||
</Button>
|
||||
</div>
|
||||
</SettingItem>
|
||||
{providers.map((provider, index) => (
|
||||
{providers.length ? (
|
||||
providers.map((provider, index) => (
|
||||
<Fragment key={provider.name}>
|
||||
<SettingItem
|
||||
title={provider.name}
|
||||
@@ -147,7 +149,7 @@ const RuleProvider: React.FC = () => {
|
||||
</Chip>
|
||||
}
|
||||
>
|
||||
<div className="flex h-[32px] leading-[32px] text-foreground-500">
|
||||
<div className="flex h-8 leading-8 text-foreground-500">
|
||||
<div>{dayjs(provider.updatedAt).fromNow()}</div>
|
||||
<Button
|
||||
isIconOnly
|
||||
@@ -193,12 +195,15 @@ const RuleProvider: React.FC = () => {
|
||||
title={<div className="text-foreground-500">{provider.format}</div>}
|
||||
divider={index !== providers.length - 1}
|
||||
>
|
||||
<div className="h-[32px] leading-[32px] text-foreground-500">
|
||||
<div className="h-8 leading-8 text-foreground-500">
|
||||
{provider.vehicleType}::{provider.behavior}
|
||||
</div>
|
||||
</SettingItem>
|
||||
</Fragment>
|
||||
))}
|
||||
))
|
||||
) : (
|
||||
<div className="py-6 text-center text-sm text-foreground/50">{t('traffic.noData')}</div>
|
||||
)}
|
||||
</SettingCard>
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user