From 2b42f68a30f8b1a02a0212770ce3ef9b3ad7bece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=90=E6=AE=87?= Date: Wed, 27 Nov 2024 00:07:50 +0800 Subject: [PATCH] prioritize displaying file types --- .../src/components/resources/proxy-provider.tsx | 15 ++++++++++----- .../src/components/resources/rule-provider.tsx | 11 +++++++++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/renderer/src/components/resources/proxy-provider.tsx b/src/renderer/src/components/resources/proxy-provider.tsx index c797e82d..a5522e6e 100644 --- a/src/renderer/src/components/resources/proxy-provider.tsx +++ b/src/renderer/src/components/resources/proxy-provider.tsx @@ -47,11 +47,16 @@ 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) => { - return 'subscriptionInfo' in provider + return Object.values(data.providers) + .filter(provider => 'subscriptionInfo' in provider) + .sort((a, b) => { + if (a.vehicleType === 'File' && b.vehicleType !== 'File') { + return -1 + } + if (a.vehicleType !== 'File' && b.vehicleType === 'File') { + return 1 + } + return 0 }) }, [data]) const [updating, setUpdating] = useState(Array(providers.length).fill(false)) diff --git a/src/renderer/src/components/resources/rule-provider.tsx b/src/renderer/src/components/resources/rule-provider.tsx index 91b1a634..6a264aee 100644 --- a/src/renderer/src/components/resources/rule-provider.tsx +++ b/src/renderer/src/components/resources/rule-provider.tsx @@ -47,8 +47,15 @@ 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]) + return Object.values(data.providers).sort((a, b) => { + if (a.vehicleType === 'File' && b.vehicleType !== 'File') { + return -1 + } + if (a.vehicleType !== 'File' && b.vehicleType === 'File') { + return 1 + } + return 0 + }) }, [data]) const [updating, setUpdating] = useState(Array(providers.length).fill(false))