From 353b5ebff3457c4a804836ee1428efeb7f8ad633 Mon Sep 17 00:00:00 2001 From: kunish Date: Sat, 16 Sep 2023 01:00:30 +0800 Subject: [PATCH] feat: drop ForTwoColumns renderer --- src/components/Collapse.tsx | 14 +- src/components/ForTwoColumns.tsx | 25 --- src/components/ProxiesSettingsModal.tsx | 15 -- src/components/RulesSettingsModal.tsx | 34 --- src/components/index.ts | 2 - src/pages/Proxies.tsx | 267 ++++++++++++------------ src/pages/Rules.tsx | 40 +--- src/signals/config.ts | 10 - 8 files changed, 144 insertions(+), 263 deletions(-) delete mode 100644 src/components/ForTwoColumns.tsx delete mode 100644 src/components/RulesSettingsModal.tsx diff --git a/src/components/Collapse.tsx b/src/components/Collapse.tsx index 4619fad..6cd5bd4 100644 --- a/src/components/Collapse.tsx +++ b/src/components/Collapse.tsx @@ -1,6 +1,5 @@ -import { JSX, ParentComponent, Show, createMemo } from 'solid-js' +import { JSX, ParentComponent, Show } from 'solid-js' import { twMerge } from 'tailwind-merge' -import { proxiesRenderInTwoColumns } from '~/signals' type Props = { title: JSX.Element @@ -26,19 +25,11 @@ export const Collapse: ParentComponent = (props) => { return props.isOpen ? openedClassName : closedClassName } - const mediaQueryClassName = createMemo(() => { - if (proxiesRenderInTwoColumns()) { - return 'lg:grid-cols-3 xl:grid-cols-4' - } else { - return 'sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 2xl:grid-cols-7' - } - }) - return (
= (props) => {
diff --git a/src/components/ForTwoColumns.tsx b/src/components/ForTwoColumns.tsx deleted file mode 100644 index 1583e8e..0000000 --- a/src/components/ForTwoColumns.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { createWindowSize } from '@solid-primitives/resize-observer' -import { JSX, Show, createMemo } from 'solid-js' -import { proxiesRenderInTwoColumns } from '~/signals' - -export const ForTwoColumns = (props: { subChild: JSX.Element[] }) => { - const windowSize = createWindowSize() - const isShowTwoColumns = createMemo( - () => windowSize.width >= 640 && proxiesRenderInTwoColumns(), - ) // 640 is sm size in daisyui - const leftColumns = createMemo(() => - props.subChild.filter((_, index) => index % 2 === 0 || !isShowTwoColumns()), - ) - const rightColumns = createMemo(() => - props.subChild.filter((_, index) => index % 2 === 1), - ) - - return ( -
-
{leftColumns()}
- -
{rightColumns()}
-
-
- ) -} diff --git a/src/components/ProxiesSettingsModal.tsx b/src/components/ProxiesSettingsModal.tsx index a61a603..b1ab556 100644 --- a/src/components/ProxiesSettingsModal.tsx +++ b/src/components/ProxiesSettingsModal.tsx @@ -8,13 +8,11 @@ import { latencyTestTimeoutDuration, proxiesOrderingType, proxiesPreviewType, - proxiesRenderInTwoColumns, setAutoCloseConns, setHideUnAvailableProxies, setLatencyTestTimeoutDuration, setProxiesOrderingType, setProxiesPreviewType, - setProxiesRenderInTwoColumns, setUrlForLatencyTest, urlForLatencyTest, } from '~/signals' @@ -114,19 +112,6 @@ export const ProxiesSettingsModal = () => {
- -
- {t('renderInTwoColumns')} - -
- setProxiesRenderInTwoColumns(e.target.checked)} - /> -
-
- ) -} diff --git a/src/components/index.ts b/src/components/index.ts index e0e972f..9004b5a 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -3,7 +3,6 @@ export * from './Collapse' export * from './ConfigTitle' export * from './ConnectionsSettingsModal' export * from './ConnectionsTableDetailsModal' -export * from './ForTwoColumns' export * from './Header' export * from './Latency' export * from './LogoText' @@ -14,5 +13,4 @@ export * from './ProxyNodeCard' export * from './ProxyNodePreview' export * from './ProxyPreviewBar' export * from './ProxyPreviewDots' -export * from './RulesSettingsModal' export * from './SubscriptionInfo' diff --git a/src/pages/Proxies.tsx b/src/pages/Proxies.tsx index 800e6f0..6f669b6 100644 --- a/src/pages/Proxies.tsx +++ b/src/pages/Proxies.tsx @@ -9,7 +9,6 @@ import { twMerge } from 'tailwind-merge' import { Button, Collapse, - ForTwoColumns, ProxiesSettingsModal, ProxyCardGroups, ProxyNodePreview, @@ -152,154 +151,160 @@ export default () => {
- { - const sortedProxyNames = filterProxiesByAvailability( - sortProxiesByOrderingType( - proxy.all ?? [], +
+ + {(proxy) => { + const sortedProxyNames = filterProxiesByAvailability( + sortProxiesByOrderingType( + proxy.all ?? [], + latencyMap(), + proxiesOrderingType(), + ), latencyMap(), - proxiesOrderingType(), - ), - latencyMap(), - hideUnAvailableProxies(), - ) + hideUnAvailableProxies(), + ) - const title = ( - <> -
-
- {proxy.name} -
{proxy.all?.length}
-
- - -
- -
- {proxy.type} {proxy.now?.length > 0 && ` :: ${proxy.now}`} -
- - - - - - ) - - return ( - { - void onProxyNodeClick(proxy, name) - }} - /> - } - onCollapse={(val) => setCollapsedMap(proxy.name, val)} - /> - ) - })} - /> - - - - { - const sortedProxyNames = filterProxiesByAvailability( - sortProxiesByOrderingType( - proxyProvider.proxies.map((i) => i.name) ?? [], - latencyMap(), - proxiesOrderingType(), - ), - latencyMap(), - hideUnAvailableProxies(), - ) - - const title = ( - <> -
-
- {proxyProvider.name} -
- {proxyProvider.proxies.length} + const title = ( + <> +
+
+ {proxy.name} +
{proxy.all?.length}
-
- -
-
-
- + {proxy.type} {proxy.now?.length > 0 && ` :: ${proxy.now}`} +
+ + + + + + ) + + return ( + { + void onProxyNodeClick(proxy, name) + }} + /> + } + onCollapse={(val) => setCollapsedMap(proxy.name, val)} /> + ) + }} + +
+
-
- {proxyProvider.vehicleType} :: {t('updated')}{' '} - {formatTimeFromNow(proxyProvider.updatedAt)} -
+ +
+ + {(proxyProvider) => { + const sortedProxyNames = filterProxiesByAvailability( + sortProxiesByOrderingType( + proxyProvider.proxies.map((i) => i.name) ?? [], + latencyMap(), + proxiesOrderingType(), + ), + latencyMap(), + hideUnAvailableProxies(), + ) - - - - - ) + const title = ( + <> +
+
+ {proxyProvider.name} +
+ {proxyProvider.proxies.length} +
+
- return ( - } - onCollapse={(val) => setCollapsedMap(proxyProvider.name, val)} - /> - ) - })} - /> +
+ + + +
+
+ + + +
+ {proxyProvider.vehicleType} :: {t('updated')}{' '} + {formatTimeFromNow(proxyProvider.updatedAt)} +
+ + + + + + ) + + return ( + } + onCollapse={(val) => + setCollapsedMap(proxyProvider.name, val) + } + /> + ) + }} +
+
diff --git a/src/pages/Rules.tsx b/src/pages/Rules.tsx index 02321df..615fe4a 100644 --- a/src/pages/Rules.tsx +++ b/src/pages/Rules.tsx @@ -1,11 +1,10 @@ import { useI18n } from '@solid-primitives/i18n' -import { IconReload, IconSettings } from '@tabler/icons-solidjs' +import { IconReload } from '@tabler/icons-solidjs' import { For, Show, createSignal, onMount } from 'solid-js' import { twMerge } from 'tailwind-merge' -import { Button, RulesSettingsModal } from '~/components' -import { MODAL } from '~/constants' +import { Button } from '~/components' import { formatTimeFromNow, useStringBooleanMap } from '~/helpers' -import { rulesRenderInTwoColumns, useRules } from '~/signals' +import { useRules } from '~/signals' enum ActiveTab { ruleProviders = 'ruleProviders', @@ -60,7 +59,7 @@ export default () => { return (
-
+
{(tab) => ( - -
- -
-
+
{(rule) => (
@@ -136,12 +115,7 @@ export default () => { -
+
{(ruleProvider) => (
@@ -173,8 +147,6 @@ export default () => {
- -
) } diff --git a/src/signals/config.ts b/src/signals/config.ts index 9ea8577..af9898a 100644 --- a/src/signals/config.ts +++ b/src/signals/config.ts @@ -51,16 +51,6 @@ export const [favNightTheme, setFavNightTheme] = makePersisted( createSignal('night'), { name: 'favNightTheme', storage: localStorage }, ) -export const [proxiesRenderInTwoColumns, setProxiesRenderInTwoColumns] = - makePersisted(createSignal(true), { - name: 'proxiesRenderInTwoColumns', - storage: localStorage, - }) -export const [rulesRenderInTwoColumns, setRulesRenderInTwoColumns] = - makePersisted(createSignal(true), { - name: 'rulesRenderInTwoColumns', - storage: localStorage, - }) export const [connectionsTableSize, setConnectionsTableSize] = makePersisted( createSignal(TAILWINDCSS_SIZE.XS), { name: 'connectionsTableSize', storage: localStorage },