added select all shortcut setup (#1201)

This commit is contained in:
Abhinav Kumar 2023-06-30 16:16:41 +05:30 committed by GitHub
commit 3a457f9dcd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -547,6 +547,10 @@ export default function Gallery() {
archivedCollections,
]);
useEffect(() => {
return setupCtrlAHandler(filteredData);
}, [filteredData]);
const fileToCollectionsMap = useMemoSingleThreaded(() => {
return constructFileToCollectionMap(files);
}, [files]);
@ -612,6 +616,25 @@ export default function Gallery() {
}
};
const setupCtrlAHandler = (filteredData) => {
const ctrlAHandler = (e: KeyboardEvent) => {
// setup ctrl/cmd + a handler
if (
(e.ctrlKey || e.metaKey) &&
e.key.toLowerCase() === 'a' &&
!e.shiftKey &&
!e.altKey
) {
e.preventDefault();
selectAll(filteredData);
}
};
document.addEventListener('keydown', ctrlAHandler);
return () => {
document.removeEventListener('keydown', ctrlAHandler);
};
};
const setDerivativeState = async (
user: User,
collections: Collection[],
@ -642,6 +665,23 @@ export default function Gallery() {
setSelected({ ownCount: 0, count: 0, collectionID: 0 });
};
const selectAll = function (filteredData) {
const selected = {
ownCount: 0,
count: 0,
collectionID: activeCollection,
};
filteredData.forEach((item) => {
if (item.ownerID === user.id) {
selected.ownCount++;
}
selected.count++;
selected[item.id] = true;
});
setSelected(selected);
};
if (!collectionSummaries || !filteredData) {
return <div />;
}