'use client' import { useQuery, useQueryClient } from '@tanstack/react-query'; import { useTranslations } from 'next-intl'; import { getViolationSearchStatus, startGlobalMonitoring } from '@/app/actions/violationActions'; import { useState } from 'react'; import ModalWindow from '@/app/components/ModalWindow'; import { toast } from 'sonner'; /* { taskId: "9647fcd6-cf9b-4503-b399-b8d53794cd49", userId: 1, searchType: "all_files", status: "PROCESSING", totalFiles: 2, processedFiles: 0, createdAt: "2026-03-13T05:21:39.850518", updatedAt: null } */ interface violationSearchStatus { taskId?: string, userId?: number, searchType?: 'all_files' | 'monitoring', status: string, totalFiles?: number, processedFiles?: number, createdAt?: string, updatedAt?: null } export default function ViolationsCheckAllSection() { const { data: violationSearchStatus, isLoading, isError, error } = useQuery({ queryKey: ['violationSearchStatus'], queryFn: () => { return getViolationSearchStatus(); }, select: (data: violationSearchStatus) => { console.log('violationSearchStatus'); console.log(data); if (data) { return data; } else { return null } }, refetchInterval: (query) => { const status = query.state.data?.status; if (status === 'PROCESSING') { return 10000; } return false; } }); const queryClient = useQueryClient(); const [isProcessing, setIsProcessing] = useState(false); const [openWindow, setOpenWindow] = useState(false); const t = useTranslations('Global'); async function openModalWindow() { await queryClient.invalidateQueries({ queryKey: ['violationSearchStatus'] }); setOpenWindow(true); } async function handlerStartMonitoring(type: 'monitoring' | 'all_files') { setIsProcessing(true); try { const response = await startGlobalMonitoring(type); if (response?.taskId) { toast.success(t('file-verification-started-successfully')); queryClient.invalidateQueries({ queryKey: ['violationSearchStatus'] }); } else { throw 'error' } } catch (error) { toast.error(t('an-error-occurred-while-starting-file-verification')); } finally { setIsProcessing(false); setOpenWindow(false); } } function ConfirmationModal() { return (

Поиск нарушений во всех ваших изображениях

Варианты проверки.
); } return ( <>
{/*
🔍
*/}
Глобальная проверка контента
Поиск нарушений во всех ваших изображениях. Проверка только точных совпадений (95%+).
{violationSearchStatus?.status && (
{violationSearchStatus?.status}
)}
) }