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