continue: work on violation page and table

This commit is contained in:
smanylov
2026-03-16 17:12:52 +07:00
parent c3de5727fe
commit 13ac3a6543
10 changed files with 465 additions and 213 deletions
@@ -3,7 +3,7 @@
import { useQuery, useQueryClient } from '@tanstack/react-query';
import { useTranslations } from 'next-intl';
import { getViolationSearchStatus, startGlobalMonitoring } from '@/app/actions/violationActions';
import { useState } from 'react';
import { useEffect, useRef, useState } from 'react';
import ModalWindow from '@/app/components/ModalWindow';
import { toast } from 'sonner';
@@ -40,9 +40,6 @@ export default function ViolationsCheckAllSection() {
return getViolationSearchStatus();
},
select: (data: violationSearchStatus) => {
console.log('violationSearchStatus');
console.log(data);
if (data) {
return data;
} else {
@@ -62,6 +59,18 @@ export default function ViolationsCheckAllSection() {
const [isProcessing, setIsProcessing] = useState<boolean>(false);
const [openWindow, setOpenWindow] = useState<boolean>(false);
const t = useTranslations('Global');
const previousStatusRef = useRef<string | undefined>('');
useEffect(() => {
const currentStatus = violationSearchStatus?.status;
const previousStatus = previousStatusRef.current;
if (currentStatus === 'task-not-found' && previousStatus === 'PROCESSING') {
queryClient.invalidateQueries({ queryKey: ['violationData'] });
toast.success(t('violation-data-updated'));
}
previousStatusRef.current = currentStatus;
}, [violationSearchStatus?.status, queryClient]);
async function openModalWindow() {
await queryClient.invalidateQueries({ queryKey: ['violationSearchStatus'] });
@@ -135,9 +144,9 @@ export default function ViolationsCheckAllSection() {
<div className="check-all-description">
Поиск нарушений во всех ваших изображениях. Проверка только точных совпадений (95%+).
</div>
{violationSearchStatus?.status && (
{(violationSearchStatus?.status !== 'task-not-found') && (
<div>
{violationSearchStatus?.status}
{t('content-verification-status')}: {violationSearchStatus?.status}
</div>
)}
</div>