Merge branch 'main' into uncategorised

This commit is contained in:
Ananddubey01 2023-01-31 20:52:22 +05:30
commit dbc2ab334b
6 changed files with 45 additions and 18 deletions

View file

@ -134,10 +134,20 @@ export default function Gallery() {
const [files, setFilesOriginal] = useState<EnteFile[]>(null);
const filesUpdateInProgress = useRef(false);
const filesCount = useRef(0);
const newerFilesFN = useRef<FilesFn>(null);
const setFilesOriginalWithReSyncIfRequired: SetFiles = (filesFn) => {
setFilesOriginal(filesFn);
setFilesOriginal((currentFiles) => {
let newFiles: EnteFile[];
if (typeof filesFn === 'function') {
newFiles = filesFn(currentFiles);
} else {
newFiles = filesFn;
}
filesCount.current = newFiles?.length;
return newFiles;
});
filesUpdateInProgress.current = false;
if (newerFilesFN.current) {
const newerFiles = newerFilesFN.current;
@ -153,7 +163,7 @@ export default function Gallery() {
}
filesUpdateInProgress.current = true;
if (!files?.length || files.length < 5000) {
if (!filesCount.current || filesCount.current < 5000) {
setFilesOriginalWithReSyncIfRequired(filesFn);
} else {
const waitTime = getData(LS_KEYS.WAIT_TIME) ?? 5000;
@ -542,6 +552,7 @@ export default function Gallery() {
});
} finally {
await syncWithRemote(false, true);
setDeletedFileIds(new Set());
finishLoading();
}
};

View file

@ -63,6 +63,17 @@ const ENDPOINT = getEndpoint();
const COLLECTION_TABLE = 'collections';
const COLLECTION_UPDATION_TIME = 'collection-updation-time';
export const getCollectionLastSyncTime = async (collection: Collection) =>
(await localForage.getItem<number>(`${collection.id}-time`)) ?? 0;
export const setCollectionLastSyncTime = async (
collection: Collection,
time: number
) => await localForage.setItem<number>(`${collection.id}-time`, time);
export const removeCollectionLastSyncTime = async (collection: Collection) =>
await localForage.removeItem(`${collection.id}-time`);
const getCollectionWithSecrets = async (
collection: EncryptedCollection,
masterKey: string
@ -200,6 +211,8 @@ export const syncCollections = async () => {
if (!collection.isDeleted) {
collections.push(collection);
updationTime = Math.max(updationTime, collection.updationTime);
} else {
removeCollectionLastSyncTime(collection);
}
}

View file

@ -1,5 +1,6 @@
import { ElectronAPIs } from 'types/electron';
import { ElectronFile } from 'types/upload';
import { CustomError } from 'utils/error';
import { convertBytesToHumanReadable } from 'utils/file/size';
import { addLogLine } from 'utils/logging';
import { logError } from 'utils/sentry';
@ -37,7 +38,12 @@ class ElectronImageProcessorService {
);
return new Blob([convertedFileData]);
} catch (e) {
logError(e, 'failed to convert heic natively');
if (
e.message !==
CustomError.WINDOWS_NATIVE_IMAGE_PROCESSING_NOT_SUPPORTED
) {
logError(e, 'failed to convert heic natively');
}
throw e;
}
}
@ -68,7 +74,12 @@ class ElectronImageProcessorService {
);
return thumb;
} catch (e) {
logError(e, 'failed to generate image thumbnail natively');
if (
e.message !==
CustomError.WINDOWS_NATIVE_IMAGE_PROCESSING_NOT_SUPPORTED
) {
logError(e, 'failed to generate image thumbnail natively');
}
throw e;
}
}

View file

@ -19,6 +19,10 @@ import { addLogLine } from 'utils/logging';
import { isCollectionHidden } from 'utils/collection';
import { CustomError } from 'utils/error';
import ComlinkCryptoWorker from 'utils/comlink/ComlinkCryptoWorker';
import {
getCollectionLastSyncTime,
setCollectionLastSyncTime,
} from './collectionService';
const ENDPOINT = getEndpoint();
const FILES_TABLE = 'files';
@ -47,9 +51,6 @@ const setLocalFiles = async (files: EnteFile[]) => {
}
};
const getCollectionLastSyncTime = async (collection: Collection) =>
(await localForage.getItem<number>(`${collection.id}-time`)) ?? 0;
export const syncFiles = async (
collections: Collection[],
setFiles: SetFiles
@ -93,10 +94,7 @@ export const syncFiles = async (
files.push(file);
}
await setLocalFiles(files);
await localForage.setItem(
`${collection.id}-time`,
collection.updationTime
);
setCollectionLastSyncTime(collection, collection.updationTime);
setFiles(preservePhotoswipeProps([...sortFiles(mergeMetadata(files))]));
}
return sortFiles(mergeMetadata(files));

View file

@ -88,13 +88,6 @@ async function generateImageThumbnail(
MAX_THUMBNAIL_SIZE
);
} catch (e) {
logError(
e,
'Error generating thumbnail using electron image processor',
{
fileFormat: fileTypeInfo.exactType,
}
);
return await generateImageThumbnailUsingCanvas(file, fileTypeInfo);
}
} else {

View file

@ -48,6 +48,7 @@ export enum CustomError {
REQUEST_TIMEOUT = 'request taking too long',
HIDDEN_COLLECTION_SYNC_FILE_ATTEMPTED = 'hidden collection sync file attempted',
UNKNOWN_ERROR = 'Something went wrong, please try again',
WINDOWS_NATIVE_IMAGE_PROCESSING_NOT_SUPPORTED = 'Windows native image processing is not supported',
}
function parseUploadErrorCodes(error) {