Merge pull request #245 from ente-io/master

release
This commit is contained in:
abhinavkgrd 2021-11-20 16:19:21 +05:30 committed by GitHub
commit 918c5320f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 42 additions and 24 deletions

View file

@ -50,6 +50,7 @@ import { LoadingOverlay } from 'components/LoadingOverlay';
import PhotoFrame from 'components/PhotoFrame';
import {
changeFilesVisibility,
getNonTrashedUniqueUserFiles,
getSelectedFiles,
mergeMetadata,
sortFiles,
@ -581,7 +582,7 @@ export default function Gallery() {
loadingBar={loadingBar}
isFirstFetch={isFirstFetch}
collections={collections}
files={files}
files={getNonTrashedUniqueUserFiles(files)}
setActiveCollection={setActiveCollection}
setSearch={updateSearch}
searchStats={searchStats}

View file

@ -5,8 +5,7 @@ import { DateValue, Suggestion, SuggestionType } from 'components/SearchBar';
import HTTPService from './HTTPService';
import { Collection } from './collectionService';
import { File } from './fileService';
import { User } from './userService';
import { getData, LS_KEYS } from 'utils/storage/localStorage';
import { logError } from 'utils/sentry';
const ENDPOINT = getEndpoint();
const DIGITS = new Set(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']);
@ -45,6 +44,7 @@ export function parseHumanDate(humanDate: string): DateValue[] {
export async function searchLocation(
searchPhrase: string
): Promise<LocationSearchResponse[]> {
try {
const resp = await HTTPService.get(
`${ENDPOINT}/search/location`,
{
@ -55,7 +55,11 @@ export async function searchLocation(
'X-Auth-Token': getToken(),
}
);
return resp.data.results;
return resp.data.results ?? [];
} catch (e) {
logError(e, 'location search failed');
}
return [];
}
export function getHolidaySuggestion(searchPhrase: string): Suggestion[] {
@ -99,7 +103,7 @@ export function getYearSuggestion(searchPhrase: string): Suggestion[] {
];
}
} catch (e) {
// ignore
logError(e, 'getYearSuggestion failed');
}
}
return [];
@ -115,8 +119,6 @@ export function searchCollection(
}
export function searchFiles(searchPhrase: string, files: File[]) {
const user: User = getData(LS_KEYS.USER) ?? {};
const idSet = new Set();
return files
.map((file, idx) => ({
title: file.metadata.title,
@ -125,13 +127,6 @@ export function searchFiles(searchPhrase: string, files: File[]) {
ownerID: file.ownerID,
id: file.id,
}))
.filter((file) => {
if (file.ownerID === user.id && !idSet.has(file.id)) {
idSet.add(file.id);
return true;
}
return false;
})
.filter(({ title }) => title.toLowerCase().includes(searchPhrase))
.slice(0, 4);
}

View file

@ -444,3 +444,25 @@ export async function getFileFromURL(fileURL: string) {
const fileFile = new globalThis.File([fileBlob], 'temp');
return fileFile;
}
export function getUniqueFiles(files: File[]) {
const idSet = new Set<number>();
return files.filter((file) => {
if (!idSet.has(file.id)) {
idSet.add(file.id);
return true;
} else {
return false;
}
});
}
export function getNonTrashedUniqueUserFiles(files: File[]) {
const user: User = getData(LS_KEYS.USER) ?? {};
return getUniqueFiles(
files.filter(
(file) =>
(typeof file.isTrashed === 'undefined' || !file.isTrashed) &&
(!user.id || file.ownerID === user.id)
)
);
}