From 2129fe172768cb60a4595b26264ced0c54a7de53 Mon Sep 17 00:00:00 2001 From: smanylov Date: Wed, 28 Jan 2026 12:12:23 +0700 Subject: [PATCH] refactor --- src/app/components/section-search-file.tsx | 172 ++------------------- src/app/ui/search/file-search-panel.tsx | 158 +++++++++++++++++++ 2 files changed, 167 insertions(+), 163 deletions(-) create mode 100644 src/app/ui/search/file-search-panel.tsx diff --git a/src/app/components/section-search-file.tsx b/src/app/components/section-search-file.tsx index c0c533b..bc149aa 100644 --- a/src/app/components/section-search-file.tsx +++ b/src/app/components/section-search-file.tsx @@ -7,9 +7,7 @@ import { useTranslations } from 'next-intl'; import { useNavigationBlocker } from '@/app/hooks/useNavigationBlocker'; import { useQueryClient } from '@tanstack/react-query'; import { searchUserFiles, removeUserFile, searchGlobalFiles } from '@/app/actions/fileEntity'; -import { SearchedUserFilesList } from '@/app/ui/search/searched-user-files-list'; -import { SearchedGlobalFilesList } from '@/app/ui/search/searched-global-files-list'; -import { useRouter } from 'next/navigation'; +import { FileSearchPanel } from '@/app/ui/search/file-search-panel'; interface SelectedFile { file: File; preview: string | undefined; @@ -40,12 +38,11 @@ export default function SectionSearchFile({ fileType, allowedExtensions, maxFile const [isFileUploaded, setIsFileUploaded] = useState(false); const [uploadProgress, setUploadProgress] = useState(0); const [fileId, setFileId] = useState(null); - - const [searchedUserFiles, setSearchedUserFiles] = useState([]); - const [searchedGlobalFiles, setSearchedGlobalFiles] = useState([]); const queryClient = useQueryClient(); const isCancelledRef = useRef(false); + const childRef = useRef(null); + const t = useTranslations('Global'); const acceptString = useMemo(() => { @@ -91,8 +88,11 @@ export default function SectionSearchFile({ fileType, allowedExtensions, maxFile setError(null); setIsFileUploaded(false); - setSearchedUserFiles([]); - setSearchedGlobalFiles([]); + + if (childRef.current) { + //@ts-ignore + childRef.current.doSomething(); + } setUploadProgress(0); @@ -151,23 +151,6 @@ export default function SectionSearchFile({ fileType, allowedExtensions, maxFile handleFileSelect(file); }; - const handleClearFile = async (): Promise => { - if (selectedFile && selectedFile.preview) { - URL.revokeObjectURL(selectedFile.preview); - } - - if (uploadId) { - await cancelUpload(uploadId); - } - - isCancelledRef.current = true; - - setIsFileUploaded(false); - setSelectedFile(null); - setError(null); - setUploadProgress(0); - }; - const handlerFileUpload = useCallback(async (fileInfo: SelectedFile): Promise => { if (uploadId) return; @@ -280,33 +263,6 @@ export default function SectionSearchFile({ fileType, allowedExtensions, maxFile } }); - const handlerSearchUserFile = useCallback(async (fileId: string): Promise => { - - try { - let result = await searchUserFiles(fileId); - - if (result.content.length) { - setSearchedUserFiles(result.content); - } - } catch (error) { - - } - - }, [fileId]) - - const handlerSearchGlobalFile = useCallback(async (fileId: string): Promise => { - - try { - let result = await searchGlobalFiles(fileId); - if (result.images.length) { - setSearchedGlobalFiles(result.images); - } - } catch (error) { - - } - - }, [fileId]) - return (
@@ -381,117 +337,7 @@ export default function SectionSearchFile({ fileType, allowedExtensions, maxFile
{isFileUploaded && ( - <> -
- -
- - {(searchedUserFiles.length !== 0) && ( - - - )} - -
-
-
- Глобальный поиск изображений -
-
- Найти где ещё используется ваше изображение в интернете -
-
- Интернет поиск -
-
- - -
-
-
- Поиск по всему интернету -
-
- Используем продвинутые технологии обратного поиска по изображению для поиска копий вашего контента - на сайтах, в социальных сетях и других источниках. Поможет обнаружить несанкционированное использование. -
-
- -
-
-
-
-
Глобальных поисков сегодня
-
0 из 10
-
-
-
-
-
-
-
- - - -
-
-
- Поиск изображений в интернете... -
-
- -
-
-
- Найдено в интернете -
-
- -
-
-
- -
-
-

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

-

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

-
- -
- Ошибка глобального поиска: - -
-
-
- + )}
); diff --git a/src/app/ui/search/file-search-panel.tsx b/src/app/ui/search/file-search-panel.tsx new file mode 100644 index 0000000..fbd190b --- /dev/null +++ b/src/app/ui/search/file-search-panel.tsx @@ -0,0 +1,158 @@ +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/fileEntity'; + +export function FileSearchPanel({ fileId, ref }: { fileId: string | null, ref: any }) { + const [searchedUserFiles, setSearchedUserFiles] = useState([]); + const [searchedGlobalFiles, setSearchedGlobalFiles] = useState([]); + + useImperativeHandle(ref, () => ({ + doSomething: () => { + setSearchedUserFiles([]); + setSearchedGlobalFiles([]) + } + })); + + + const handlerSearchUserFile = useCallback(async (fileId: string): Promise => { + + try { + let result = await searchUserFiles(fileId); + + if (result.content.length) { + setSearchedUserFiles(result.content); + } + } catch (error) { + + } + + }, [fileId]) + + const handlerSearchGlobalFile = useCallback(async (fileId: string): Promise => { + + try { + let result = await searchGlobalFiles(fileId); + if (result.images.length) { + setSearchedGlobalFiles(result.images); + } + } catch (error) { + + } + + }, [fileId]) + + return ( + <> +
+ +
+ + {(searchedUserFiles.length !== 0) && ( + + + )} + +
+
+
+ Глобальный поиск изображений +
+
+ Найти где ещё используется ваше изображение в интернете +
+
+ Интернет поиск +
+
+ + +
+
+
+ Поиск по всему интернету +
+
+ Используем продвинутые технологии обратного поиска по изображению для поиска копий вашего контента + на сайтах, в социальных сетях и других источниках. Поможет обнаружить несанкционированное использование. +
+
+ +
+
+
+
+
Глобальных поисков сегодня
+
0 из 10
+
+
+
+
+
+
+
+ + + +
+
+
+ Поиск изображений в интернете... +
+
+ +
+
+
+ Найдено в интернете +
+
+ +
+
+
+ +
+
+

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

+

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

+
+ +
+ Ошибка глобального поиска: + +
+
+
+ + ) +} \ No newline at end of file