fix initial sync issues

This commit is contained in:
Abhinav 2023-01-19 19:12:20 +05:30
parent 0bbda28d81
commit e303bbc449

View file

@ -135,8 +135,8 @@ export default function Gallery() {
const filesUpdateInProgress = useRef(false); const filesUpdateInProgress = useRef(false);
const newerFilesFN = useRef<FilesFn>(null); const newerFilesFN = useRef<FilesFn>(null);
const setFilesOriginalWithReSyncIfRequired = (files: EnteFile[]) => { const setFilesOriginalWithReSyncIfRequired: SetFiles = (filesFn) => {
setFilesOriginal(files); setFilesOriginal(filesFn);
filesUpdateInProgress.current = false; filesUpdateInProgress.current = false;
if (newerFilesFN.current) { if (newerFilesFN.current) {
const newerFiles = newerFilesFN.current; const newerFiles = newerFilesFN.current;
@ -151,20 +151,16 @@ export default function Gallery() {
return; return;
} }
filesUpdateInProgress.current = true; filesUpdateInProgress.current = true;
setFilesOriginal((previousFiles) => {
previousFiles = previousFiles || []; if (!files?.length || files.length < 5000) {
const files = setFilesOriginalWithReSyncIfRequired(filesFn);
filesFn instanceof Function ? filesFn(previousFiles) : filesFn; } else {
if (files?.length > 5000 && previousFiles.length > 5000) { const waitTime = getData(LS_KEYS.WAIT_TIME) ?? 5000;
const waitTime = getData(LS_KEYS.WAIT_TIME) ?? 5000; setTimeout(
setTimeout(() => { () => setFilesOriginalWithReSyncIfRequired(filesFn),
setFilesOriginalWithReSyncIfRequired(files); waitTime
}, waitTime); );
} else { }
setFilesOriginalWithReSyncIfRequired(files);
}
return previousFiles;
});
}; };
const [favItemIds, setFavItemIds] = useState<Set<number>>(); const [favItemIds, setFavItemIds] = useState<Set<number>>();