merge hidden files in file DB
This commit is contained in:
parent
1b1d64c391
commit
4304a5e09f
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue