added select all shortcut setup (#1201)
This commit is contained in:
commit
3a457f9dcd
|
@ -547,6 +547,10 @@ export default function Gallery() {
|
||||||
archivedCollections,
|
archivedCollections,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
return setupCtrlAHandler(filteredData);
|
||||||
|
}, [filteredData]);
|
||||||
|
|
||||||
const fileToCollectionsMap = useMemoSingleThreaded(() => {
|
const fileToCollectionsMap = useMemoSingleThreaded(() => {
|
||||||
return constructFileToCollectionMap(files);
|
return constructFileToCollectionMap(files);
|
||||||
}, [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 (
|
const setDerivativeState = async (
|
||||||
user: User,
|
user: User,
|
||||||
collections: Collection[],
|
collections: Collection[],
|
||||||
|
@ -642,6 +665,23 @@ export default function Gallery() {
|
||||||
setSelected({ ownCount: 0, count: 0, collectionID: 0 });
|
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) {
|
if (!collectionSummaries || !filteredData) {
|
||||||
return <div />;
|
return <div />;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue