reduce filteredData concurrency to 1
This commit is contained in:
parent
c283bda998
commit
9b76011171
|
@ -1,6 +1,6 @@
|
||||||
import { GalleryContext } from 'pages/gallery';
|
import { GalleryContext } from 'pages/gallery';
|
||||||
import PreviewCard from './pages/gallery/PreviewCard';
|
import PreviewCard from './pages/gallery/PreviewCard';
|
||||||
import React, { useContext, useEffect, useState } from 'react';
|
import React, { useContext, useEffect, useRef, useState } from 'react';
|
||||||
import { EnteFile } from 'types/file';
|
import { EnteFile } from 'types/file';
|
||||||
import { styled } from '@mui/material';
|
import { styled } from '@mui/material';
|
||||||
import DownloadManager from 'services/downloadManager';
|
import DownloadManager from 'services/downloadManager';
|
||||||
|
@ -114,11 +114,22 @@ const PhotoFrame = ({
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const [isSourceLoaded, setIsSourceLoaded] = useState(false);
|
const [isSourceLoaded, setIsSourceLoaded] = useState(false);
|
||||||
|
|
||||||
const filteredData = useMemo(() => {
|
const updateInProgress = useRef(false);
|
||||||
|
const updateRequired = useRef(false);
|
||||||
|
|
||||||
|
const [filteredData, setFilteredData] = useState<EnteFile[]>([]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const main = () => {
|
||||||
|
if (updateInProgress.current) {
|
||||||
|
updateRequired.current = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
updateInProgress.current = true;
|
||||||
const idSet = new Set();
|
const idSet = new Set();
|
||||||
const user: User = getData(LS_KEYS.USER);
|
const user: User = getData(LS_KEYS.USER);
|
||||||
|
|
||||||
return files
|
const filteredData = files
|
||||||
.map((item, index) => ({
|
.map((item, index) => ({
|
||||||
...item,
|
...item,
|
||||||
dataIndex: index,
|
dataIndex: index,
|
||||||
|
@ -161,7 +172,10 @@ const PhotoFrame = ({
|
||||||
) {
|
) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (activeCollection === ARCHIVE_SECTION && !IsArchived(item)) {
|
if (
|
||||||
|
activeCollection === ARCHIVE_SECTION &&
|
||||||
|
!IsArchived(item)
|
||||||
|
) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,6 +203,16 @@ const PhotoFrame = ({
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
setFilteredData(filteredData);
|
||||||
|
updateInProgress.current = false;
|
||||||
|
if (updateRequired.current) {
|
||||||
|
updateRequired.current = false;
|
||||||
|
setTimeout(() => {
|
||||||
|
main();
|
||||||
|
}, 0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
main();
|
||||||
}, [
|
}, [
|
||||||
files,
|
files,
|
||||||
deletedFileIds,
|
deletedFileIds,
|
||||||
|
|
Loading…
Reference in a new issue