This commit is contained in:
Manav Rathi
2024-09-11 19:56:51 +05:30
parent bf001794b4
commit 5b2be09a6a
2 changed files with 17 additions and 18 deletions

View File

@@ -166,7 +166,10 @@ const labelledFileTypes = (): LabelledFileType[] => [
export const getAutoCompleteSuggestions =
(files: EnteFile[], collections: Collection[]) =>
async (searchPhrase: string): Promise<SearchOption[]> => {
log.debug(() => ["getAutoCompleteSuggestions", { searchPhrase }]);
log.debug(() => [
"getAutoCompleteSuggestions",
{ searchPhrase, collections },
]);
try {
const searchPhrase2 = searchPhrase.trim().toLowerCase();
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
@@ -180,7 +183,6 @@ export const getAutoCompleteSuggestions =
// - getLocationSuggestion(searchPhrase),
// - getFileTypeSuggestion(searchPhrase),
...(await createSearchQuery(searchPhrase)),
...getCollectionSuggestion(searchPhrase2, collections),
getFileNameSuggestion(searchPhrase2, files),
getFileCaptionSuggestion(searchPhrase2, files),
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
@@ -219,22 +221,6 @@ async function convertSuggestionsToOptions(
return previewImageAppendedOptions;
}
function getCollectionSuggestion(
searchPhrase: string,
collections: Collection[],
): Suggestion[] {
const collectionResults = searchCollection(searchPhrase, collections);
return collectionResults.map(
(searchResult) =>
({
type: SuggestionType.COLLECTION,
value: searchResult.id,
label: searchResult.name,
}) as Suggestion,
);
}
function getFileNameSuggestion(
searchPhrase: string,
files: EnteFile[],

View File

@@ -1,5 +1,6 @@
import { HTTPError } from "@/base/http";
import type { Location } from "@/base/types";
import type { Collection } from "@/media/collection";
import { fileCreationPhotoDate, fileLocation } from "@/media/file-metadata";
import type { EnteFile } from "@/new/photos/types/file";
import { nullToUndefined } from "@/utils/transform";
@@ -73,6 +74,7 @@ export class SearchWorker {
createSearchQuery(s: string, localizedSearchData: LocalizedSearchData) {
return createSearchQuery(
s,
this.searchableData,
localizedSearchData,
this.locationTags,
this.cities,
@@ -93,16 +95,27 @@ expose(SearchWorker);
const createSearchQuery = (
s: string,
{ collections }: SearchableData,
{ locale, holidays, labelledFileTypes }: LocalizedSearchData,
locationTags: Searchable<LocationTag>[],
cities: Searchable<City>[],
): Suggestion[] =>
[
collectionSuggestions(s, collections),
dateSuggestions(s, locale, holidays),
locationSuggestions(s, locationTags, cities),
fileTypeSuggestions(s, labelledFileTypes),
].flat();
const collectionSuggestions = (s: string, collections: Collection[]) =>
collections
.filter(({ name }) => name.toLowerCase().includes(s))
.map(({ id, name }) => ({
type: SuggestionType.COLLECTION,
value: id,
label: name,
}));
const dateSuggestions = (
s: string,
locale: string,