From 75eddcf610a254372a95f7de2305310f0f5429f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Gabriel?= Date: Mon, 2 Sep 2024 01:12:41 -0300 Subject: [PATCH] feat: Add hook on web app to open composer with 'N' keyboard shortcut --- src/App.web.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/App.web.tsx b/src/App.web.tsx index 3017a3a264..aa4e911ce5 100644 --- a/src/App.web.tsx +++ b/src/App.web.tsx @@ -35,6 +35,7 @@ import { } from '#/state/session' import {readLastActiveAccount} from '#/state/session/util' import {Provider as ShellStateProvider} from '#/state/shell' +import {useComposerControls} from '#/state/shell/composer' import {Provider as LoggedOutViewProvider} from '#/state/shell/logged-out' import {Provider as ProgressGuideProvider} from '#/state/shell/progress-guide' import {Provider as SelectedFeedProvider} from '#/state/shell/selected-feed' @@ -55,6 +56,7 @@ function InnerApp() { const [isReady, setIsReady] = React.useState(false) const {currentAccount} = useSession() const {resumeSession} = useSessionApi() + const {openComposer} = useComposerControls() const theme = useColorModeTheme() const {_} = useLingui() useIntentHandler() @@ -86,6 +88,16 @@ function InnerApp() { }) }, [_]) + useEffect(() => { + const handleNShortcut = (event: KeyboardEvent) => { + if (event.key === 'n' || event.key === 'N') openComposer({}) + } + + document.addEventListener('keydown', handleNShortcut) + + return () => document.removeEventListener('keydown', handleNShortcut) + }, [openComposer]) + // wait for session to resume if (!isReady || !hasCheckedReferrer) return null