only pass non trashed file user files for search

This commit is contained in:
Abhinav 2021-11-20 12:07:19 +05:30
parent 8929f235e7
commit e13787df7a
3 changed files with 24 additions and 12 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

@ -6,8 +6,6 @@ import HTTPService from './HTTPService';
import { Collection } from './collectionService';
import { File } from './fileService';
import { logError } from 'utils/sentry';
import { User } from './userService';
import { getData, LS_KEYS } from 'utils/storage/localStorage';
const ENDPOINT = getEndpoint();
const DIGITS = new Set(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']);
@ -121,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,
@ -131,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)
)
);
}