Skip to content

Commit 58b25b5

Browse files
committed
Implement boosthub ipc handlers for global shortcuts
1 parent 9adb89d commit 58b25b5

File tree

1 file changed

+60
-4
lines changed

1 file changed

+60
-4
lines changed

src/components/pages/BoostHubTeamsShowPage.tsx

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ import React, { useState, useRef, useCallback, useEffect } from 'react'
22
import { getBoostHubTeamPageUrl } from '../../lib/boosthub'
33
import styled from '../../lib/styled'
44
import { DidNavigateInPageEvent, DidNavigateEvent } from 'electron'
5-
import { openContextMenu } from '../../lib/electronOnly'
5+
import {
6+
openContextMenu,
7+
addIpcListener,
8+
removeIpcListener,
9+
} from '../../lib/electronOnly'
610
import { usePreferences } from '../../lib/preferences'
711
import { osName } from '../../lib/platform'
812
import {
@@ -92,12 +96,64 @@ const BoostHubTeamsShowPage = ({
9296
return
9397
}
9498

95-
const handler = () => {
99+
const toggleSettingsHandler = () => {
96100
webviewControlRef.current!.sendMessage('toggle-settings')
97101
}
98-
boostHubToggleSettingsEventEmitter.listen(handler)
102+
boostHubToggleSettingsEventEmitter.listen(toggleSettingsHandler)
103+
104+
const newNoteHandler = () => {
105+
webviewControlRef.current!.sendMessage('new-note')
106+
}
107+
const newFolderHandler = () => {
108+
webviewControlRef.current!.sendMessage('new-folder')
109+
}
110+
const saveAsHandler = () => {
111+
webviewControlRef.current!.sendMessage('save-as')
112+
}
113+
const searchHandler = () => {
114+
webviewControlRef.current!.sendMessage('search')
115+
}
116+
const focusSideNavigatorHandler = () => {
117+
webviewControlRef.current!.sendMessage('focus-side-navigator')
118+
}
119+
const toggleSideNavigatorHandler = () => {
120+
webviewControlRef.current!.sendMessage('toggle-side-navigator')
121+
}
122+
const focusEditorHandler = () => {
123+
webviewControlRef.current!.sendMessage('focus-editor')
124+
}
125+
const focusTitle = () => {
126+
webviewControlRef.current!.sendMessage('focus-title')
127+
}
128+
const togglePreviewMode = () => {
129+
webviewControlRef.current!.sendMessage('toggle-preview-mode')
130+
}
131+
const toggleSplitEditMode = () => {
132+
webviewControlRef.current!.sendMessage('toggle-split-edit-mode')
133+
}
134+
addIpcListener('new-note', newNoteHandler)
135+
addIpcListener('new-folder', newFolderHandler)
136+
addIpcListener('save-as', saveAsHandler)
137+
addIpcListener('search', searchHandler)
138+
addIpcListener('focus-side-navigator', focusSideNavigatorHandler)
139+
addIpcListener('toggle-side-navigator', toggleSideNavigatorHandler)
140+
addIpcListener('focus-editor', focusEditorHandler)
141+
addIpcListener('focus-title', focusTitle)
142+
addIpcListener('toggle-preview-mode', togglePreviewMode)
143+
addIpcListener('toggle-split-edit-mode', toggleSplitEditMode)
144+
99145
return () => {
100-
boostHubToggleSettingsEventEmitter.unlisten(handler)
146+
boostHubToggleSettingsEventEmitter.unlisten(toggleSettingsHandler)
147+
removeIpcListener('new-note', newNoteHandler)
148+
removeIpcListener('new-folder', newFolderHandler)
149+
removeIpcListener('save-as', saveAsHandler)
150+
removeIpcListener('search', searchHandler)
151+
removeIpcListener('focus-side-navigator', focusSideNavigatorHandler)
152+
removeIpcListener('toggle-side-navigator', toggleSideNavigatorHandler)
153+
removeIpcListener('focus-editor', focusEditorHandler)
154+
removeIpcListener('focus-title', focusTitle)
155+
removeIpcListener('toggle-preview-mode', togglePreviewMode)
156+
removeIpcListener('toggle-split-edit-mode', toggleSplitEditMode)
101157
}
102158
}, [active])
103159

0 commit comments

Comments
 (0)