update DedicatedSearchWorker to keep files list locally
This commit is contained in:
parent
142f485a4a
commit
42e3905864
4 changed files with 23 additions and 15 deletions
|
@ -79,7 +79,7 @@ export default function SearchInput(props: Iprops) {
|
|||
}, []);
|
||||
|
||||
async function refreshDefaultOptions() {
|
||||
const defaultOptions = await getDefaultOptions(props.files);
|
||||
const defaultOptions = await getDefaultOptions();
|
||||
setDefaultOptions(defaultOptions);
|
||||
}
|
||||
|
||||
|
|
|
@ -363,6 +363,14 @@ export default function Gallery() {
|
|||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
const main = async () => {
|
||||
const searchWorker = await ComlinkSearchWorker.getInstance();
|
||||
searchWorker.setFiles(files);
|
||||
};
|
||||
main();
|
||||
}, [files]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!user || !files || !collections || !hiddenFiles || !trashedFiles) {
|
||||
return;
|
||||
|
@ -492,9 +500,7 @@ export default function Gallery() {
|
|||
|
||||
let filteredFiles: EnteFile[] = [];
|
||||
if (isInSearchMode) {
|
||||
filteredFiles = getUniqueFiles(
|
||||
await searchWorker.search(files, search)
|
||||
);
|
||||
filteredFiles = getUniqueFiles(await searchWorker.search(search));
|
||||
} else {
|
||||
filteredFiles = getUniqueFiles(
|
||||
(isInHiddenSection ? hiddenFiles : files).filter((item) => {
|
||||
|
|
|
@ -34,13 +34,10 @@ const DIGITS = new Set(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']);
|
|||
|
||||
const CLIP_SCORE_THRESHOLD = 0.23;
|
||||
|
||||
export const getDefaultOptions = async (files: EnteFile[]) => {
|
||||
export const getDefaultOptions = async () => {
|
||||
return [
|
||||
await getIndexStatusSuggestion(),
|
||||
...(await convertSuggestionsToOptions(
|
||||
await getAllPeopleSuggestion(),
|
||||
files
|
||||
)),
|
||||
...(await convertSuggestionsToOptions(await getAllPeopleSuggestion())),
|
||||
].filter((t) => !!t);
|
||||
};
|
||||
|
||||
|
@ -66,7 +63,7 @@ export const getAutoCompleteSuggestions =
|
|||
...(await getThingSuggestion(searchPhrase)),
|
||||
].filter((suggestion) => !!suggestion);
|
||||
|
||||
return convertSuggestionsToOptions(suggestions, files);
|
||||
return convertSuggestionsToOptions(suggestions);
|
||||
} catch (e) {
|
||||
logError(e, 'getAutoCompleteSuggestions failed');
|
||||
return [];
|
||||
|
@ -74,15 +71,14 @@ export const getAutoCompleteSuggestions =
|
|||
};
|
||||
|
||||
async function convertSuggestionsToOptions(
|
||||
suggestions: Suggestion[],
|
||||
files: EnteFile[]
|
||||
suggestions: Suggestion[]
|
||||
): Promise<SearchOption[]> {
|
||||
const searchWorker = await ComlinkSearchWorker.getInstance();
|
||||
const previewImageAppendedOptions: SearchOption[] = await Promise.all(
|
||||
suggestions.map(async (suggestion) => {
|
||||
const searchQuery = convertSuggestionToSearchQuery(suggestion);
|
||||
const resultFiles = getUniqueFiles(
|
||||
await searchWorker.search(files, searchQuery)
|
||||
await searchWorker.search(searchQuery)
|
||||
);
|
||||
|
||||
if (searchQuery?.clip) {
|
||||
|
|
|
@ -8,8 +8,14 @@ import { isSameDayAnyYear } from 'utils/search';
|
|||
import { Search } from 'types/search';
|
||||
|
||||
export class DedicatedSearchWorker {
|
||||
async search(files: EnteFile[], search: Search) {
|
||||
return files.filter((file) => {
|
||||
private files: EnteFile[] = [];
|
||||
|
||||
setFiles(files: EnteFile[]) {
|
||||
this.files = files;
|
||||
}
|
||||
|
||||
search(search: Search) {
|
||||
return this.files.filter((file) => {
|
||||
return isSearchedFile(file, search);
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue