From 0dfdbf0dbdb729f02d4a2ed746380f2941b18d7c Mon Sep 17 00:00:00 2001 From: Mykyta Holubakha Date: Wed, 7 Oct 2020 18:27:13 +0300 Subject: [PATCH] Added a shortcut to delete selected region --- src/Annotator/reducers/general-reducer.js | 7 +++++++ src/MainLayout/types.js | 1 + src/ShortcutsManager/index.js | 10 ++++++++++ 3 files changed, 18 insertions(+) diff --git a/src/Annotator/reducers/general-reducer.js b/src/Annotator/reducers/general-reducer.js index 743658d8..be92c714 100644 --- a/src/Annotator/reducers/general-reducer.js +++ b/src/Annotator/reducers/general-reducer.js @@ -745,6 +745,13 @@ export default (state: MainLayoutState, action: Action) => { (activeImage.regions || []).filter((r) => r.id !== action.region.id) ) } + case "DELETE_SELECTED_REGION": { + return setIn( + state, + [...pathToActiveImage, "regions"], + (activeImage.regions || []).filter((r) => !r.highlighted) + ) + } case "HEADER_BUTTON_CLICKED": { const buttonName = action.buttonName.toLowerCase() switch (buttonName) { diff --git a/src/MainLayout/types.js b/src/MainLayout/types.js index 9279ac15..9d076fe3 100644 --- a/src/MainLayout/types.js +++ b/src/MainLayout/types.js @@ -148,6 +148,7 @@ export type Action = | {| type: "OPEN_REGION_EDITOR", region: Region |} | {| type: "CLOSE_REGION_EDITOR", region: Region |} | {| type: "DELETE_REGION", region: Region |} + | {| type: "DELETE_SELECTED_REGION" |} | {| type: "HEADER_BUTTON_CLICKED", buttonName: string |} | {| type: "SELECT_TOOL", selectedTool: ToolEnum |} | {| type: "CANCEL" |} diff --git a/src/ShortcutsManager/index.js b/src/ShortcutsManager/index.js index f59e4a68..461ff447 100644 --- a/src/ShortcutsManager/index.js +++ b/src/ShortcutsManager/index.js @@ -53,6 +53,11 @@ export const defaultHotkeys = [ id: "exit_sample", description: "Exit sample without saving", }, + { + id: "delete_region", + description: "Delete selected region", + binding: "Delete", + }, ] export const defaultKeyMap = {} for (const { id, binding } of defaultHotkeys) defaultKeyMap[id] = binding @@ -120,6 +125,11 @@ export const useDispatchHotkeyHandlers = ({ dispatch }) => { buttonName: "Save", }) }, + delete_region: () => { + dispatch({ + type: "DELETE_SELECTED_REGION", + }) + }, // TODO // exit_sample: () => { // dispatch({