🏗️ Migrate dnshole summary to tRPC

This commit is contained in:
Meier Lukas
2023-06-10 14:04:32 +02:00
parent 1fd93e6f49
commit 9b6ce9e1f6
4 changed files with 111 additions and 20 deletions

View File

@@ -5,10 +5,10 @@ import { useConfigContext } from '../../config/provider';
import { defineWidget } from '../helper';
import { WidgetLoading } from '../loading';
import { IWidget } from '../widgets';
import { useDnsHoleSummeryQuery } from './query';
import { PiholeApiSummaryType } from './type';
import { queryClient } from '../../tools/server/configurations/tanstack/queryClient.tool';
import { api } from '~/utils/api';
import { useDnsHoleSummeryQuery } from './DnsHoleSummary';
const definition = defineWidget({
id: 'dns-hole-controls',
@@ -30,7 +30,7 @@ interface DnsHoleControlsWidgetProps {
}
function DnsHoleControlsWidgetTile({ widget }: DnsHoleControlsWidgetProps) {
const { isInitialLoading, data, refetch } = useDnsHoleSummeryQuery();
const { isInitialLoading, data } = useDnsHoleSummeryQuery();
const { mutateAsync } = useDnsHoleControlMutation();
const { t } = useTranslation('common');

View File

@@ -1,4 +1,3 @@
import { useTranslation } from 'next-i18next';
import { Card, Center, Container, Stack, Text } from '@mantine/core';
import {
IconAd,
@@ -7,11 +6,13 @@ import {
IconSearch,
IconWorldWww,
} from '@tabler/icons-react';
import { useTranslation } from 'next-i18next';
import { useConfigContext } from '~/config/provider';
import { api } from '~/utils/api';
import { formatNumber } from '../../tools/client/math';
import { defineWidget } from '../helper';
import { WidgetLoading } from '../loading';
import { IWidget } from '../widgets';
import { formatNumber } from '../../tools/client/math';
import { useDnsHoleSummeryQuery } from './query';
const definition = defineWidget({
id: 'dns-hole-summary',
@@ -179,4 +180,17 @@ function DnsHoleSummaryWidgetTile({ widget }: DnsHoleSummaryWidgetProps) {
);
}
export const useDnsHoleSummeryQuery = () => {
const { name: configName } = useConfigContext();
return api.dnsHole.summary.useQuery(
{
configName: configName!,
},
{
refetchInterval: 3 * 60 * 1000,
}
);
};
export default definition;

View File

@@ -1,12 +0,0 @@
import { useQuery } from '@tanstack/react-query';
import { AdStatistics } from './type';
export const useDnsHoleSummeryQuery = () =>
useQuery({
queryKey: ['dns-hole-summary'],
queryFn: async () => {
const response = await fetch('/api/modules/dns-hole/summary');
return (await response.json()) as AdStatistics;
},
refetchInterval: 3 * 60 * 1000,
});