add more monitoring info

This commit is contained in:
smanylov
2026-04-20 17:36:33 +07:00
parent 045eef24c0
commit 7800499c72
5 changed files with 74 additions and 6 deletions
+31
View File
@@ -120,3 +120,34 @@ export async function fetchLastMonitoringCheck() {
return null return null
} }
} }
export async function fetchMonitoringInfo() {
const token = await getSessionData('token');
try {
const response = await fetch(`${API_BASE_URL}/api/v1/data`, {
method: 'POST',
body: JSON.stringify({
version: 1,
msg_id: 30027,
message_body: {
authToken: token
}
}),
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
});
if (response.ok) {
const parsed = await response.json();
if (parsed?.message_body) {
return parsed.message_body;
}
}
} catch (error) {
return null
}
}
@@ -0,0 +1,24 @@
import { useQuery } from '@tanstack/react-query';
import { fetchMonitoringInfo } from '@/app/actions/monitoringActions';
interface MonitoringCount {
day: number;
month: number;
weekly: number;
}
export const useMonitoringCount = () => {
return useQuery({
queryKey: ['monitoringCount'],
queryFn: () => {
return fetchMonitoringInfo()
},
select: (data: MonitoringCount | null) => {
if (!data) {
return null
}
return data;
},
retry: false
});
};
+9 -4
View File
@@ -4,13 +4,18 @@ import { useTranslations } from 'next-intl';
import { useUserFilesInfo } from '@/app/hooks/react-query/useUserFilesInfo'; import { useUserFilesInfo } from '@/app/hooks/react-query/useUserFilesInfo';
import { IconDocument, IconSearch, IconWarning, IconGraph } from '@/app/ui/icons/icons'; import { IconDocument, IconSearch, IconWarning, IconGraph } from '@/app/ui/icons/icons';
import { useViolationStatistic } from '@/app/hooks/react-query/useViolationStatistic'; import { useViolationStatistic } from '@/app/hooks/react-query/useViolationStatistic';
import { useMonitoringStats } from '@/app/hooks/react-query/useMonitoringStats'; import { useMonitoringCount } from '@/app/hooks/react-query/useMonitoringCount';
import { useEffect } from 'react';
export default function ReportsInfo() { export default function ReportsInfo() {
const t = useTranslations("Global"); const t = useTranslations("Global");
const { data: filesInfo, isLoading, isError, error } = useUserFilesInfo(); const { data: filesInfo, isLoading, isError, error } = useUserFilesInfo();
const { data: violationStatistic } = useViolationStatistic(); const { data: violationStatistic } = useViolationStatistic();
const { data: monitoringStats } = useMonitoringStats(); const { data: monitoringCount } = useMonitoringCount();
useEffect(() => {
console.log(monitoringCount);
}, [monitoringCount])
return ( return (
<> <>
@@ -42,9 +47,9 @@ export default function ReportsInfo() {
</div> </div>
</div> </div>
<div className="stat-value"> <div className="stat-value">
{monitoringStats?.total_searches ? monitoringStats?.total_searches : 0} {`${monitoringCount?.day}/${monitoringCount?.weekly}/${monitoringCount?.month}`}
</div> </div>
<div className="stat-label">{t('monitoring')}</div> <div className="stat-label">{t('monitoring')} {t('every')}: {t('day')}/{t('week')}/{t('month')}</div>
</div> </div>
<div className="stat-card storage" data-icon=""> <div className="stat-card storage" data-icon="">
+5 -1
View File
@@ -435,7 +435,11 @@
"no-complaints": "No complaints", "no-complaints": "No complaints",
"no-claims": "No claims", "no-claims": "No claims",
"in": "in", "in": "in",
"last-content-check": "Last content check" "last-content-check": "Last content check",
"day": "day",
"week": "week",
"month": "month",
"every": "every"
}, },
"Login-register-form": { "Login-register-form": {
"and": "and", "and": "and",
+5 -1
View File
@@ -435,7 +435,11 @@
"no-complaints": "Жалоб нет", "no-complaints": "Жалоб нет",
"no-claims": "Претензии нет", "no-claims": "Претензии нет",
"in": "в", "in": "в",
"last-content-check": "Последняя проверка контента" "last-content-check": "Последняя проверка контента",
"day": "день",
"week": "неделя",
"month": "месяц",
"every": "каждый"
}, },
"Login-register-form": { "Login-register-form": {
"and": "и", "and": "и",