From 1afa24d12a8bb386427c343dd6cc2e83613e91bc Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Tue, 19 Apr 2022 11:41:29 -0700 Subject: [PATCH] Keyboard shortcut for editing labels from the library --- packages/web/components/patterns/CardMenu.tsx | 12 ++++++------ .../templates/article/SetLabelsControl.tsx | 1 - .../templates/homeFeed/HomeFeedContainer.tsx | 3 +++ .../web/lib/keyboardShortcuts/navigationShortcuts.ts | 7 +++++++ 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/packages/web/components/patterns/CardMenu.tsx b/packages/web/components/patterns/CardMenu.tsx index a6bd0aa9a..13b2a60ef 100644 --- a/packages/web/components/patterns/CardMenu.tsx +++ b/packages/web/components/patterns/CardMenu.tsx @@ -35,6 +35,12 @@ export function CardMenu(props: CardMenuProps): JSX.Element { title="Unarchive" /> )} + { + props.actionHandler('set-labels') + }} + title="Set Labels" + /> {isVipUser(props.viewer) && ( { @@ -64,12 +70,6 @@ export function CardMenu(props: CardMenuProps): JSX.Element { title="Mark Unread" /> )} - { - props.actionHandler('set-labels') - }} - title="Set Labels" - /> { props.actionHandler('delete') diff --git a/packages/web/components/templates/article/SetLabelsControl.tsx b/packages/web/components/templates/article/SetLabelsControl.tsx index afeafd47e..db15c3583 100644 --- a/packages/web/components/templates/article/SetLabelsControl.tsx +++ b/packages/web/components/templates/article/SetLabelsControl.tsx @@ -281,7 +281,6 @@ export function SetLabelsControl(props: SetLabelsControlProps): JSX.Element { } } } - event.preventDefault() }, [filterText, filteredLabels, focusedIndex, isSelected, selectedLabels, setSelectedLabels]) const createLabelFromFilterText = useCallback(async () => { diff --git a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx index d14136dd8..c711743b9 100644 --- a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx +++ b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx @@ -364,6 +364,9 @@ export function HomeFeedContainer(props: HomeFeedContainerProps): JSX.Element { case 'markItemAsUnread': handleCardAction('mark-unread', activeItem) break + case 'showEditLabelsModal': + handleCardAction('set-labels', activeItem) + break case 'shareItem': setShareTarget(activeItem) break diff --git a/packages/web/lib/keyboardShortcuts/navigationShortcuts.ts b/packages/web/lib/keyboardShortcuts/navigationShortcuts.ts index 98da5cf33..e984a199c 100644 --- a/packages/web/lib/keyboardShortcuts/navigationShortcuts.ts +++ b/packages/web/lib/keyboardShortcuts/navigationShortcuts.ts @@ -86,6 +86,7 @@ type LibraryListKeyboardAction = | 'sortAscending' | 'shareItem' | 'showAddLinkModal' + | 'showEditLabelsModal' export function libraryListCommands( actionHandler: (action: LibraryListKeyboardAction) => void @@ -127,6 +128,12 @@ export function libraryListCommands( shortcutKeyDescription: 'e', callback: () => actionHandler('archiveItem'), }, + { + shortcutKeys: ['l'], + actionDescription: 'Edit item labels', + shortcutKeyDescription: 'l', + callback: () => actionHandler('showEditLabelsModal'), + }, { shortcutKeys: ['shift', 'i'], actionDescription: 'Mark item as read',