import { SearchedUserFilesList } from '@/app/ui/search/searched-user-files-list'; import { SearchedGlobalFilesList } from '@/app/ui/search/searched-global-files-list'; import { useCallback, useState, useImperativeHandle } from 'react'; import { searchUserFiles, searchGlobalFiles } from '@/app/actions/searchActions'; import { useQueryClient } from '@tanstack/react-query'; import { Pagination } from '@/app/components/Pagination'; export interface SearchItem { url: string, pageTitle: string, height: number, width: number, host: string, pageUrl: string } export function FileSearchPanel({ fileId, ref }: { fileId: string | null, ref: any }) { const [searchedUserFiles, setSearchedUserFiles] = useState([]); const [searchedUserFilesShowNull, setSearchedUserFilesShowNull] = useState(false); const [searchedGlobalFiles, setSearchedGlobalFiles] = useState([]); const [searchedGlobalFilesShowNull, setSearchedGlobalFilesShowNull] = useState(false); const [loading, setLoading] = useState(false); const [paginationLoading, setPaginationLoading] = useState(false); const [showGlobalSearch, setShowGlobalSearch] = useState(false); const queryClient = useQueryClient(); const [searchTotalPages, setSearchTotalPages] = useState(0); const [searchCurrentPages, setSearchCurrentPages] = useState(1); useImperativeHandle(ref, () => ({ clearList: () => { setSearchedUserFiles([]); setSearchedGlobalFiles([]); setSearchedUserFilesShowNull(false); setSearchedGlobalFilesShowNull(false); setShowGlobalSearch(false); setSearchCurrentPages(1); setSearchTotalPages(0); } })); const handlerSearchUserFile = useCallback(async (fileId: string, page: number): Promise => { try { let result = await searchUserFiles(fileId); if (result.content.length) { setSearchedUserFiles(result.content); } else { setSearchedUserFilesShowNull(true); } } catch (error) { } setShowGlobalSearch(true); handlerSearchGlobalFile(fileId, page) }, [fileId]) const handlerSearchGlobalFile = useCallback(async (fileId: string, page: number, actionFromPagination?: boolean): Promise => { if (!actionFromPagination) { setLoading(true); setSearchedGlobalFilesShowNull(false); setSearchedGlobalFiles([]); } else { setPaginationLoading(true); } try { let result = await searchGlobalFiles(fileId, page); console.log('searchGlobalFiles'); console.log(result); if (result.images.length) { setSearchedGlobalFiles(result.images); setSearchTotalPages(result.totalPages); setSearchCurrentPages(page); } else { setSearchedGlobalFilesShowNull(true); } } catch (error) { } finally { await queryClient.invalidateQueries({ queryKey: ['userData'] }); await queryClient.invalidateQueries({ queryKey: ['userSearchData'] }); setLoading(false); setPaginationLoading(false); } }, [fileId]) return ( <>
{(searchedUserFiles.length !== 0) && ( )} {searchedUserFilesShowNull && (
Результаты поиска
Найдено файлов: {searchedUserFiles.length}

Похожих файлов не найдено

В вашей библиотеке нет файлов, похожих на загруженный

Совет: Убедитесь, что вы загружали этот файл ранее через страницу "Маркировка"
)} {showGlobalSearch && (
Глобальный поиск изображений
Найти где ещё используется ваше изображение в интернете
Интернет поиск
Поиск по всему интернету
Используем продвинутые технологии обратного поиска по изображению для поиска копий вашего контента на сайтах, в социальных сетях и других источниках. Поможет обнаружить несанкционированное использование.
Глобальных поисков сегодня
0 из 10
Поиск изображений в интернете...
Найдено в интернете {paginationLoading && (
)}
{searchedGlobalFilesShowNull && (

Похожие изображения в интернете не найдены

Это может означать, что ваше изображение уникально и не используется на других сайтах.

)}
Ошибка глобального поиска:
)} ) }