select all by date is the culprit

for 100k
t0: 291.615234375 ms
t1: 4.695068359375 ms
t2: 5.75 ms
t3: 5.9921875 ms
t4: 0.014892578125 ms
t5: 0.794921875 ms
t6: 0.0029296875 ms
This commit is contained in:
Manav Rathi 2025-02-21 10:51:26 +05:30
parent 7c679cd38b
commit 0b1eee6c8e
No known key found for this signature in database

View File

@ -743,21 +743,36 @@ export function PhotoList({
// Nothing to do here if nothing is selected.
if (!galleryContext.selectedFile) return;
const notSelectedFiles = displayFiles?.filter(
console.time("t0");
const datedDisplayFiles = displayFiles?.map((item) => ({
...item,
date: getDate(item),
}));
console.timeEnd("t0");
console.time("t1");
const notSelectedFiles = datedDisplayFiles?.filter(
(item) => !galleryContext.selectedFile[item.id],
);
const unselectedDates = [
...new Set(notSelectedFiles?.map((item) => getDate(item))), // to get file's date which were manually unselected
];
console.timeEnd("t1");
console.time("t2");
const unselectedDates = new Set(
notSelectedFiles?.map((item) => item.date),
); // to get file's date which were manually unselected
const localSelectedFiles = displayFiles.filter(
console.timeEnd("t2");
console.time("t3");
const localSelectedFiles = datedDisplayFiles.filter(
// to get files which were manually selected
(item) => !unselectedDates.includes(getDate(item)),
(item) => !unselectedDates.has(item.date),
);
console.timeEnd("t3");
console.time("t4");
const localSelectedDates = [
...new Set(localSelectedFiles?.map((item) => getDate(item))),
...new Set(localSelectedFiles?.map((item) => item.date)),
]; // to get file's date which were manually selected
console.timeEnd("t4");
console.time("t5");
unselectedDates.forEach((date) => {
setCheckedDates((prev) => ({
@ -765,6 +780,8 @@ export function PhotoList({
[date]: false,
})); // To uncheck select all checkbox if any of the file on the date is unselected
});
console.timeEnd("t5");
console.time("t6");
localSelectedDates.map((date) => {
setCheckedDates((prev) => ({
@ -773,6 +790,15 @@ export function PhotoList({
}));
// To check select all checkbox if all of the files on the date is selected manually
});
console.timeEnd("t6");
console.log({
notSelectedFiles,
localSelectedFiles,
localSelectedDates,
unselectedDatesLen: unselectedDates.size,
});
}, [galleryContext.selectedFile]);
const handleSelect = handleSelectCreator(