From 268fcf94cc6513df8f54686bd3480972213c392c Mon Sep 17 00:00:00 2001 From: Zephyruso <127948745+Zephyruso@users.noreply.github.com> Date: Sat, 2 Sep 2023 12:05:31 +0800 Subject: [PATCH] refactor: proxy preview --- src/components/ProxyNodePreview.tsx | 86 ++--------------------------- src/components/ProxyPreviewBar.tsx | 54 ++++++++++++++++++ src/components/ProxyPreviewDots.tsx | 41 ++++++++++++++ 3 files changed, 101 insertions(+), 80 deletions(-) create mode 100644 src/components/ProxyPreviewBar.tsx create mode 100644 src/components/ProxyPreviewDots.tsx diff --git a/src/components/ProxyNodePreview.tsx b/src/components/ProxyNodePreview.tsx index ec297b6..0d7df7b 100644 --- a/src/components/ProxyNodePreview.tsx +++ b/src/components/ProxyNodePreview.tsx @@ -1,91 +1,17 @@ -import { For, Show } from 'solid-js' -import { twMerge } from 'tailwind-merge' -import Delay from '~/components/Delay' -import { DELAY, PROXIES_PREVIEW_TYPE } from '~/config/enum' +import { Show } from 'solid-js' +import { PROXIES_PREVIEW_TYPE } from '~/config/enum' import { proxiesPreviewType } from '~/pages/Config' -import { useProxies } from '~/signals/proxies' - -const DelayDots = (p: { delay: number | undefined; selected: boolean }) => { - let dotClassName = p.selected - ? 'bg-white border-4 border-success' - : 'bg-success' - - if (typeof p.delay !== 'number' || p.delay === DELAY.NOT_CONNECTED) { - dotClassName = p.selected - ? 'bg-white border-4 border-neutral' - : 'bg-neutral' - } else if (p.delay > DELAY.HIGH) { - dotClassName = p.selected ? 'bg-white border-4 border-error' : 'bg-error' - } else if (p.delay > DELAY.MEDIUM) { - dotClassName = p.selected - ? 'bg-white border-4 border-warning' - : 'bg-warning' - } - - return
-} +import ProxyPreviewBar from './ProxyPreviewBar' +import ProxyPreviewDots from './ProxyPreviewDots' export default (props: { proxyNameList: string[]; now?: string }) => { - const { proxyNodeMap } = useProxies() - const allNodesDelay = props.proxyNameList.map((i) => proxyNodeMap()[i].delay!) - const all = allNodesDelay.length - const good = allNodesDelay.filter( - (delay) => delay > DELAY.NOT_CONNECTED && delay <= DELAY.MEDIUM, - ).length - const middle = allNodesDelay.filter( - (delay) => delay > DELAY.MEDIUM && delay <= DELAY.HIGH, - ).length - const slow = allNodesDelay.filter((delay) => delay > DELAY.HIGH).length - const notConnected = allNodesDelay.filter( - (delay) => delay === DELAY.NOT_CONNECTED, - ).length - return ( <>