merge hidden files in file DB

This commit is contained in:
Abhinav 2023-05-10 18:12:38 +05:30
parent 1b1d64c391
commit 4304a5e09f
2 changed files with 13 additions and 48 deletions

View file

@ -13,7 +13,6 @@ import {
updateFileMagicMetadata,
trashFiles,
deleteFromTrash,
getLocalHiddenFiles,
} from 'services/fileService';
import { styled, Typography } from '@mui/material';
import {
@ -42,7 +41,6 @@ import EnteSpinner from 'components/EnteSpinner';
import { LoadingOverlay } from 'components/LoadingOverlay';
import PhotoFrame from 'components/PhotoFrame';
import {
addIsHiddenProperty,
changeFilesVisibility,
downloadFiles,
getNonTrashedFiles,
@ -278,14 +276,9 @@ export default function Gallery() {
setIsFirstLogin(false);
const user = getData(LS_KEYS.USER);
let files = mergeMetadata(await getLocalFiles());
const hiddenFiles = await getLocalHiddenFiles();
const collections = await getLocalCollections();
const trash = await getLocalTrash();
files = [
...files,
...getTrashedFiles(trash),
...addIsHiddenProperty(hiddenFiles),
];
files = [...files, ...getTrashedFiles(trash)];
setUser(user);
setFiles(sortFiles(files));
setCollections(collections);

View file

@ -28,7 +28,6 @@ import { batch } from 'utils/common';
const ENDPOINT = getEndpoint();
const FILES_TABLE = 'files';
const HIDDEN_FILES_TABLE = 'hidden-files';
export const getLocalFiles = async () => {
const files: Array<EnteFile> =
@ -36,12 +35,6 @@ export const getLocalFiles = async () => {
return files;
};
export const getLocalHiddenFiles = async () => {
const files: Array<EnteFile> =
(await localForage.getItem<EnteFile[]>(HIDDEN_FILES_TABLE)) || [];
return files;
};
const setLocalFiles = async (files: EnteFile[]) => {
try {
await localForage.setItem(FILES_TABLE, files);
@ -65,30 +58,11 @@ const setLocalFiles = async (files: EnteFile[]) => {
}
};
const setLocalHiddenFiles = async (files: EnteFile[]) => {
try {
await localForage.setItem(HIDDEN_FILES_TABLE, files);
} catch (e1) {
try {
const storageEstimate = await navigator.storage.estimate();
logError(e1, 'failed to save files to indexedDB', {
storageEstimate,
});
addLogLine(`storage estimate ${JSON.stringify(storageEstimate)}`);
} catch (e2) {
logError(e1, 'failed to save files to indexedDB');
logError(e2, 'failed to get storage stats');
}
throw e1;
}
};
export const syncFiles = async (
collections: Collection[],
setFiles: SetFiles
): Promise<EnteFile[]> => {
const localFiles = await getLocalFiles();
const localHiddenFiles = await getLocalHiddenFiles();
let files = await removeDeletedCollectionFiles(collections, localFiles);
if (files.length !== localFiles.length) {
await setLocalFiles(files);
@ -103,26 +77,24 @@ export const syncFiles = async (
continue;
}
let newFiles: EnteFile[] = [];
if (isCollectionHidden(collection)) {
const dummySetFiles = () => {};
const newHiddenFiles = await getFiles(
collection,
lastSyncTime,
dummySetFiles
newFiles = addIsHiddenProperty(
await getFiles(collection, lastSyncTime, dummySetFiles)
);
const hiddenFiles = getLatestVersionFiles([
...localHiddenFiles,
...newHiddenFiles,
]);
await setLocalHiddenFiles(hiddenFiles);
setFiles(
sortFiles(mergeMetadata(addIsHiddenProperty(hiddenFiles)))
setFiles((files) =>
sortFiles(
mergeMetadata(
getLatestVersionFiles([...(files || []), ...newFiles])
)
)
);
} else {
const newFiles = await getFiles(collection, lastSyncTime, setFiles);
files = getLatestVersionFiles([...files, ...newFiles]);
await setLocalFiles(files);
newFiles = await getFiles(collection, lastSyncTime, setFiles);
}
files = getLatestVersionFiles([...files, ...newFiles]);
await setLocalFiles(files);
setCollectionLastSyncTime(collection, collection.updationTime);
}
return files;