diff --git a/.eslintrc.json b/.eslintrc.json index ee1ed4d9..c39be090 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -161,6 +161,7 @@ "no-else-return": "off", "jest/valid-expect": "off", "jest/expect-expect": "off", + "react-hooks/exhaustive-deps": "off", "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/no-unused-vars": "error", "@typescript-eslint/explicit-module-boundary-types": "error", diff --git a/app/scripts/ui/menu/app-menu-item.ts b/app/scripts/ui/menu/app-menu-item.ts index 3198ea1c..2b404d7b 100644 --- a/app/scripts/ui/menu/app-menu-item.ts +++ b/app/scripts/ui/menu/app-menu-item.ts @@ -14,17 +14,6 @@ import { useModelWatcher } from 'util/ui/hooks'; export const AppMenuItem: FunctionComponent<{ item: MenuItem }> = ({ item }) => { useModelWatcher(item); - useEffect(() => { - if (item.shortcut) { - const offs: Callback[] = []; - offs.push(KeyHandler.onKey(item.shortcut, selectItem, KeyHandler.SHORTCUT_OPT)); - if (item.shortcut !== Keys.DOM_VK_C) { - offs.push(KeyHandler.onKey(item.shortcut, selectItem, KeyHandler.SHORTCUT_ACTION)); - } - return () => offs.forEach((off) => off()); - } - }, []); - const selectItem = () => { if (item.active) { return; @@ -38,6 +27,17 @@ export const AppMenuItem: FunctionComponent<{ item: MenuItem }> = ({ item }) => } }; + useEffect(() => { + if (item.shortcut) { + const offs: Callback[] = []; + offs.push(KeyHandler.onKey(item.shortcut, selectItem, KeyHandler.SHORTCUT_OPT)); + if (item.shortcut !== Keys.DOM_VK_C) { + offs.push(KeyHandler.onKey(item.shortcut, selectItem, KeyHandler.SHORTCUT_ACTION)); + } + return () => offs.forEach((off) => off()); + } + }, [item.shortcut]); + const itemClicked = () => { selectItem(); }; diff --git a/app/scripts/views/open/open-password-view.tsx b/app/scripts/views/open/open-password-view.tsx index 572e4590..e47fe671 100644 --- a/app/scripts/views/open/open-password-view.tsx +++ b/app/scripts/views/open/open-password-view.tsx @@ -5,7 +5,6 @@ import { SecureInput, SecureInputEvent } from 'views/components/secure-input'; import { useLayoutEffect, useRef } from 'preact/hooks'; import { useEvent } from 'util/ui/hooks'; import { classes } from 'util/ui/classes'; -import { FocusDetector } from 'comp/browser/focus-detector'; import { Features } from 'util/features'; export const OpenPasswordView: FunctionComponent<{