diff --git a/src/app/actions/fileEntity.ts b/src/app/actions/fileEntity.ts index 7df3af3..4091863 100644 --- a/src/app/actions/fileEntity.ts +++ b/src/app/actions/fileEntity.ts @@ -85,7 +85,7 @@ export async function searchUserFiles(fileId: string) { const token = await getSessionData('token'); try { - const response = await fetch(`${API_BASE_URL}/api/v1/files/${fileId}/similar?auth_token=${token}`, { + const response = await fetch(`${API_BASE_URL}/api/v1/files/${fileId}/similar?similarityLevels=DUPLICATE,SIMILARITY&auth_token=${token}`, { method: 'GET' }); diff --git a/src/app/styles/pages-styles.scss b/src/app/styles/pages-styles.scss index 12380b9..b202104 100644 --- a/src/app/styles/pages-styles.scss +++ b/src/app/styles/pages-styles.scss @@ -2948,6 +2948,11 @@ position: relative; overflow: hidden; + &:disabled { + opacity: 0.5; + cursor: default; + } + &:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 12px 35px rgba(102, 126, 234, 0.4); @@ -2962,6 +2967,10 @@ border-radius: 16px; margin: 20px 0; + &.show { + display: block; + } + .global-spinner { width: 50px; height: 50px; diff --git a/src/app/ui/search/file-search-panel.tsx b/src/app/ui/search/file-search-panel.tsx index 47dbc0c..3b1dfd1 100644 --- a/src/app/ui/search/file-search-panel.tsx +++ b/src/app/ui/search/file-search-panel.tsx @@ -2,12 +2,14 @@ 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'; +import { fa } from 'zod/v4/locales'; 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); useImperativeHandle(ref, () => ({ clearList: () => { @@ -36,6 +38,10 @@ export function FileSearchPanel({ fileId, ref }: { fileId: string | null, ref: a }, [fileId]) const handlerSearchGlobalFile = useCallback(async (fileId: string): Promise => { + setLoading(true); + setSearchedGlobalFilesShowNull(false); + setSearchedGlobalFiles([]); + try { let result = await searchGlobalFiles(fileId); @@ -46,6 +52,8 @@ export function FileSearchPanel({ fileId, ref }: { fileId: string | null, ref: a } } catch (error) { + } finally { + setLoading(false); } }, [fileId]) @@ -144,6 +152,7 @@ export function FileSearchPanel({ fileId, ref }: { fileId: string | null, ref: a type="button" className="global-search-btn" id="global-search-btn" + disabled={loading ? true : false} onClick={() => { if (fileId) { handlerSearchGlobalFile(fileId) @@ -153,7 +162,7 @@ export function FileSearchPanel({ fileId, ref }: { fileId: string | null, ref: a Найти в интернете -
+
Поиск изображений в интернете...