From 68ff84c85a721be274456328c1b590b30c952939 Mon Sep 17 00:00:00 2001 From: Yossi Hillali Date: Sat, 25 May 2024 13:42:49 +0300 Subject: [PATCH] feat: add indexers site hyperlink (#2061) * Feature: add indexers site hyperlink * Fix: add an option taget on settings, change color to grey --- .../locales/en/modules/indexer-manager.json | 5 ++- .../indexer-manager/IndexerManagerTile.tsx | 33 +++++++++++++++---- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/public/locales/en/modules/indexer-manager.json b/public/locales/en/modules/indexer-manager.json index 051593223..587eac0b1 100644 --- a/public/locales/en/modules/indexer-manager.json +++ b/public/locales/en/modules/indexer-manager.json @@ -3,7 +3,10 @@ "name": "Indexer manager status", "description": "Status about your indexers", "settings": { - "title": "Indexer manager status" + "title": "Indexer manager status", + "openIndexerSiteInNewTab": { + "label": "Open Indexer Site In New Tab" + } } }, "indexersStatus": { diff --git a/src/widgets/indexer-manager/IndexerManagerTile.tsx b/src/widgets/indexer-manager/IndexerManagerTile.tsx index 98b68d800..9673ccd50 100644 --- a/src/widgets/indexer-manager/IndexerManagerTile.tsx +++ b/src/widgets/indexer-manager/IndexerManagerTile.tsx @@ -1,4 +1,13 @@ -import { Button, Card, Flex, Group, ScrollArea, Text } from '@mantine/core'; +import { + Anchor, + Button, + Card, + Flex, + Group, + ScrollArea, + Text, + useMantineTheme, +} from '@mantine/core'; import { IconCircleCheck, IconCircleX, IconReportSearch, IconTestPipe } from '@tabler/icons-react'; import { useSession } from 'next-auth/react'; import { useTranslation } from 'next-i18next'; @@ -12,7 +21,12 @@ import { IWidget } from '../widgets'; const definition = defineWidget({ id: 'indexer-manager', icon: IconReportSearch, - options: {}, + options: { + openIndexerSiteInNewTab: { + type: 'switch', + defaultValue: true, + }, + }, gridstack: { minWidth: 1, minHeight: 1, @@ -30,6 +44,7 @@ interface IndexerManagerWidgetProps { function IndexerManagerWidgetTile({ widget }: IndexerManagerWidgetProps) { const { t } = useTranslation('modules/indexer-manager'); + const mantineTheme = useMantineTheme(); const { data: sessionData } = useSession(); const { name: configName } = useConfigContext(); const utils = api.useUtils(); @@ -49,7 +64,7 @@ function IndexerManagerWidgetTile({ widget }: IndexerManagerWidgetProps) { configName: configName!, }, { - staleTime: 1000 * 60 * 2, + refetchInterval: 1000 * 60 * 2, } ); if (indexersLoading || !indexersData || statusesLoading) { @@ -63,9 +78,15 @@ function IndexerManagerWidgetTile({ widget }: IndexerManagerWidgetProps) { {indexersData.map((indexer: any) => ( - - {indexer.name} - + + + {indexer.name} + + {!statusesData.find((status: any) => indexer.id === status.indexerId) && indexer.enable ? (