Check for meta key on all shortcuts
This commit is contained in:
parent
866c9fb273
commit
cd2e91f5e1
@ -38,16 +38,18 @@ export default function AppViewSwitcher({
|
||||
const refHrefGrid = useRef<HTMLAnchorElement>(null);
|
||||
|
||||
const onKeyDown = useCallback((e: KeyboardEvent) => {
|
||||
switch (e.key.toLocaleUpperCase()) {
|
||||
case KEY_COMMANDS.feed:
|
||||
if (pathname !== PATH_FEED_INFERRED) { refHrefFeed.current?.click(); }
|
||||
break;
|
||||
case KEY_COMMANDS.grid:
|
||||
if (pathname !== PATH_GRID_INFERRED) { refHrefGrid.current?.click(); }
|
||||
break;
|
||||
case KEY_COMMANDS.admin:
|
||||
if (isUserSignedIn) { setIsAdminMenuOpen(true); }
|
||||
break;
|
||||
if (!e.metaKey) {
|
||||
switch (e.key.toLocaleUpperCase()) {
|
||||
case KEY_COMMANDS.feed:
|
||||
if (pathname !== PATH_FEED_INFERRED) { refHrefFeed.current?.click(); }
|
||||
break;
|
||||
case KEY_COMMANDS.grid:
|
||||
if (pathname !== PATH_GRID_INFERRED) { refHrefGrid.current?.click(); }
|
||||
break;
|
||||
case KEY_COMMANDS.admin:
|
||||
if (isUserSignedIn) { setIsAdminMenuOpen(true); }
|
||||
break;
|
||||
}
|
||||
}
|
||||
}, [pathname, isUserSignedIn]);
|
||||
useKeydownHandler({ onKeyDown });
|
||||
|
||||
@ -103,58 +103,63 @@ export default function PhotoPrevNextActions({
|
||||
: undefined;
|
||||
|
||||
const onKeyDown = useCallback((e: KeyboardEvent) => {
|
||||
switch (e.key.toUpperCase()) {
|
||||
// Public commands
|
||||
case KEY_COMMANDS.prev[0]:
|
||||
case KEY_COMMANDS.prev[1]:
|
||||
if (pathPrevious) {
|
||||
setNextPhotoAnimation?.(ANIMATION_RIGHT);
|
||||
refPrevious.current?.click();
|
||||
if (e.metaKey) {
|
||||
switch (e.key.toUpperCase()) {
|
||||
case KEY_COMMANDS.delete[1]:
|
||||
if (isUserSignedIn) {
|
||||
deletePhoto();
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.next[0]:
|
||||
case KEY_COMMANDS.next[1]:
|
||||
if (pathNext) {
|
||||
setNextPhotoAnimation?.(ANIMATION_LEFT);
|
||||
refNext.current?.click();
|
||||
}
|
||||
break;
|
||||
// Admin commands
|
||||
case KEY_COMMANDS.edit:
|
||||
if (isUserSignedIn) {
|
||||
navigateToPhotoEdit();
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.favorite:
|
||||
if (isUserSignedIn && photo && !isPhotoFav(photo)) {
|
||||
favoritePhoto();
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.unfavorite:
|
||||
if (isUserSignedIn && photo && isPhotoFav(photo)) {
|
||||
unfavoritePhoto();
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.download:
|
||||
if (
|
||||
(isUserSignedIn || ALLOW_PUBLIC_DOWNLOADS) &&
|
||||
downloadUrl &&
|
||||
downloadFileName
|
||||
) {
|
||||
downloadFileFromBrowser(downloadUrl, downloadFileName);
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.sync:
|
||||
if (isUserSignedIn) {
|
||||
syncPhoto();
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.delete[1]:
|
||||
if (e.metaKey && isUserSignedIn) {
|
||||
deletePhoto();
|
||||
}
|
||||
break;
|
||||
};
|
||||
} else {
|
||||
switch (e.key.toUpperCase()) {
|
||||
// Public commands
|
||||
case KEY_COMMANDS.prev[0]:
|
||||
case KEY_COMMANDS.prev[1]:
|
||||
if (pathPrevious) {
|
||||
setNextPhotoAnimation?.(ANIMATION_RIGHT);
|
||||
refPrevious.current?.click();
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.next[0]:
|
||||
case KEY_COMMANDS.next[1]:
|
||||
if (pathNext) {
|
||||
setNextPhotoAnimation?.(ANIMATION_LEFT);
|
||||
refNext.current?.click();
|
||||
}
|
||||
break;
|
||||
// Admin commands
|
||||
case KEY_COMMANDS.edit:
|
||||
if (isUserSignedIn) {
|
||||
navigateToPhotoEdit();
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.favorite:
|
||||
if (isUserSignedIn && photo && !isPhotoFav(photo)) {
|
||||
favoritePhoto();
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.unfavorite:
|
||||
if (isUserSignedIn && photo && isPhotoFav(photo)) {
|
||||
unfavoritePhoto();
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.download:
|
||||
if (
|
||||
(isUserSignedIn || ALLOW_PUBLIC_DOWNLOADS) &&
|
||||
downloadUrl &&
|
||||
downloadFileName
|
||||
) {
|
||||
downloadFileFromBrowser(downloadUrl, downloadFileName);
|
||||
}
|
||||
break;
|
||||
case KEY_COMMANDS.sync:
|
||||
if (isUserSignedIn) {
|
||||
syncPhoto();
|
||||
}
|
||||
break;
|
||||
};
|
||||
}
|
||||
}, [
|
||||
setNextPhotoAnimation,
|
||||
pathPrevious,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user