fix files reference getting cached in setFiles
This commit is contained in:
parent
0398187458
commit
fbac757ce0
|
@ -100,6 +100,7 @@ import { User } from 'types/user';
|
|||
import { getData, LS_KEYS } from 'utils/storage/localStorage';
|
||||
import { CenteredFlex } from 'components/Container';
|
||||
import { checkConnectivity } from 'utils/error/ui';
|
||||
import common from 'services/electron/common';
|
||||
|
||||
export const DeadCenter = styled('div')`
|
||||
flex: 1;
|
||||
|
@ -133,10 +134,21 @@ 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);
|
||||
common.logRendererProcessMemoryUsage('memory before setFilesOriginal');
|
||||
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;
|
||||
|
@ -152,7 +164,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;
|
||||
|
|
Loading…
Reference in a new issue