continue: work on violation page
This commit is contained in:
@@ -1,11 +1,32 @@
|
||||
'use client'
|
||||
|
||||
import { useQuery } from '@tanstack/react-query';
|
||||
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 { fa } from 'zod/v4/locales';
|
||||
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 {
|
||||
@@ -18,20 +39,32 @@ export default function ViolationsCheckAllSection() {
|
||||
queryFn: () => {
|
||||
return getViolationSearchStatus();
|
||||
},
|
||||
select: (data) => {
|
||||
/* console.log(data); */
|
||||
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 t = useTranslations('Global');
|
||||
const queryClient = useQueryClient();
|
||||
const [isProcessing, setIsProcessing] = useState<boolean>(false);
|
||||
const [openWindow, setOpenWindow] = useState<boolean>(false);
|
||||
const t = useTranslations('Global');
|
||||
|
||||
function openModalWindow() {
|
||||
async function openModalWindow() {
|
||||
await queryClient.invalidateQueries({ queryKey: ['violationSearchStatus'] });
|
||||
setOpenWindow(true);
|
||||
}
|
||||
|
||||
@@ -40,8 +73,14 @@ export default function ViolationsCheckAllSection() {
|
||||
|
||||
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) {
|
||||
console.error(error);
|
||||
toast.error(t('an-error-occurred-while-starting-file-verification'));
|
||||
} finally {
|
||||
setIsProcessing(false);
|
||||
setOpenWindow(false);
|
||||
@@ -96,6 +135,11 @@ export default function ViolationsCheckAllSection() {
|
||||
<div className="check-all-description">
|
||||
Поиск нарушений во всех ваших изображениях. Проверка только точных совпадений (95%+).
|
||||
</div>
|
||||
{violationSearchStatus?.status && (
|
||||
<div>
|
||||
{violationSearchStatus?.status}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
<button
|
||||
type="button"
|
||||
|
||||
Reference in New Issue
Block a user