@@ -16,12 +16,9 @@ export default class ShortcutsSection extends BaseSection {
1616 this . props = props ;
1717 }
1818
19- // TODO - Deduplicate templateMacHTML and templateWinLinHTML functions. In theory
20- // they both should be the same the only thing different should be the userOSKey
21- // variable but there seems to be inconsistences between both function, one has more
22- // lines though one may just be using more new lines and other thing is the use of +.
23- templateMacHTML ( ) : string {
24- const userOSKey = '⌘' ;
19+ // eslint-disable-next-line complexity
20+ templateHTML ( ) : string {
21+ const cmdOrCtrl = process . platform === 'darwin' ? '⌘' : 'Ctrl' ;
2522
2623 return htmlEscape `
2724 < div class ="settings-pane ">
@@ -30,35 +27,39 @@ export default class ShortcutsSection extends BaseSection {
3027 < div class ="settings-card ">
3128 < table >
3229 < tr >
33- < td > < kbd > ${ userOSKey } </ kbd > < kbd > ,</ kbd > </ td >
30+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > ,</ kbd > </ td >
3431 < td > ${ t . __ ( 'Settings' ) } </ td >
3532 </ tr >
3633 < tr >
37- < td > < kbd > ${ userOSKey } </ kbd > < kbd > K</ kbd > </ td >
34+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > K</ kbd > </ td >
3835 < td > ${ t . __ ( 'Keyboard Shortcuts' ) } </ td >
3936 </ tr >
40- < tr >
41- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Shift</ kbd > + < kbd > M</ kbd > </ td >
37+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
38+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Shift</ kbd > + < kbd > M</ kbd > </ td >
4239 < td > ${ t . __ ( 'Toggle Do Not Disturb' ) } </ td >
4340 </ tr >
44- < tr >
45- < td > < kbd > Shift</ kbd > < kbd > ${ userOSKey } </ kbd > < kbd > D</ kbd > </ td >
41+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
42+ < td > < kbd > Shift</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > M</ kbd > </ td >
43+ < td > ${ t . __ ( 'Toggle Do Not Disturb' ) } </ td >
44+ </ tr >
45+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
46+ < td > < kbd > Shift</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > D</ kbd > </ td >
4647 < td > ${ t . __ ( 'Reset App Settings' ) } </ td >
4748 </ tr >
4849 < tr >
49- < td > < kbd > ${ userOSKey } </ kbd > < kbd > L</ kbd > </ td >
50+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > L</ kbd > </ td >
5051 < td > ${ t . __ ( 'Log Out' ) } </ td >
5152 </ tr >
52- < tr >
53- < td > < kbd > ${ userOSKey } </ kbd > < kbd > H</ kbd > </ td >
53+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
54+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > H</ kbd > </ td >
5455 < td > ${ t . __ ( 'Hide Zulip' ) } </ td >
5556 </ tr >
56- < tr >
57- < td > < kbd > Option</ kbd > < kbd > ${ userOSKey } </ kbd > < kbd > H</ kbd > </ td >
57+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
58+ < td > < kbd > Option</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > H</ kbd > </ td >
5859 < td > ${ t . __ ( 'Hide Others' ) } </ td >
5960 </ tr >
6061 < tr >
61- < td > < kbd > ${ userOSKey } </ kbd > < kbd > Q</ kbd > </ td >
62+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Q</ kbd > </ td >
6263 < td > ${ t . __ ( 'Quit Zulip' ) } </ td >
6364 </ tr >
6465 </ table >
@@ -68,35 +69,43 @@ export default class ShortcutsSection extends BaseSection {
6869 < div class ="settings-card ">
6970 < table >
7071 < tr >
71- < td > < kbd > ${ userOSKey } </ kbd > < kbd > Z</ kbd > </ td >
72+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Z</ kbd > </ td >
7273 < td > ${ t . __ ( 'Undo' ) } </ td >
7374 </ tr >
74- < tr >
75- < td > < kbd > Shift</ kbd > < kbd > ${ userOSKey } </ kbd > < kbd > Z</ kbd > </ td >
75+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
76+ < td > < kbd > Shift</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Z</ kbd > </ td >
77+ < td > ${ t . __ ( 'Redo' ) } </ td >
78+ </ tr >
79+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
80+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Y</ kbd > </ td >
7681 < td > ${ t . __ ( 'Redo' ) } </ td >
7782 </ tr >
7883 < tr >
79- < td > < kbd > ${ userOSKey } </ kbd > < kbd > X</ kbd > </ td >
84+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > X</ kbd > </ td >
8085 < td > ${ t . __ ( 'Cut' ) } </ td >
8186 </ tr >
8287 < tr >
83- < td > < kbd > ${ userOSKey } </ kbd > < kbd > C</ kbd > </ td >
88+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > C</ kbd > </ td >
8489 < td > ${ t . __ ( 'Copy' ) } </ td >
8590 </ tr >
8691 < tr >
87- < td > < kbd > ${ userOSKey } </ kbd > < kbd > V</ kbd > </ td >
92+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > V</ kbd > </ td >
8893 < td > ${ t . __ ( 'Paste' ) } </ td >
8994 </ tr >
90- < tr >
91- < td > < kbd > Shift</ kbd > < kbd > ${ userOSKey } </ kbd > < kbd > V</ kbd > </ td >
95+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
96+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Shift</ kbd > + < kbd > V</ kbd > </ td >
97+ < td > ${ t . __ ( 'Paste and Match Style' ) } </ td >
98+ </ tr >
99+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
100+ < td > < kbd > Shift</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > V</ kbd > </ td >
92101 < td > ${ t . __ ( 'Paste and Match Style' ) } </ td >
93102 </ tr >
94103 < tr >
95- < td > < kbd > ${ userOSKey } </ kbd > < kbd > A</ kbd > </ td >
104+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > A</ kbd > </ td >
96105 < td > ${ t . __ ( 'Select All' ) } </ td >
97106 </ tr >
98- < tr >
99- < td > < kbd > Control</ kbd > < kbd > ${ userOSKey } </ kbd > < kbd > Space</ kbd > </ td >
107+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
108+ < td > < kbd > Control</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Space</ kbd > </ td >
100109 < td > ${ t . __ ( 'Emoji & Symbols' ) } </ td >
101110 </ tr >
102111 </ table >
@@ -106,39 +115,63 @@ export default class ShortcutsSection extends BaseSection {
106115 < div class ="settings-card ">
107116 < table >
108117 < tr >
109- < td > < kbd > ${ userOSKey } </ kbd > < kbd > R</ kbd > </ td >
118+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > R</ kbd > </ td >
110119 < td > ${ t . __ ( 'Reload' ) } </ td >
111120 </ tr >
112- < tr >
113- < td > < kbd > Shift </ kbd > < kbd > ${ userOSKey } </ kbd > < kbd > R</ kbd > </ td >
121+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
122+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Shift </ kbd > + < kbd > R</ kbd > </ td >
114123 < td > ${ t . __ ( 'Hard Reload' ) } </ td >
115124 </ tr >
116- < tr >
117- < td > < kbd > Control</ kbd > < kbd > ${ userOSKey } </ kbd > < kbd > F</ kbd > </ td >
125+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
126+ < td > < kbd > Shift</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > R</ kbd > </ td >
127+ < td > ${ t . __ ( 'Hard Reload' ) } </ td >
128+ </ tr >
129+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
130+ < td > < kbd > F11</ kbd > </ td >
131+ < td > ${ t . __ ( 'Toggle Full Screen' ) } </ td >
132+ </ tr >
133+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
134+ < td > < kbd > Control</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > F</ kbd > </ td >
118135 < td > ${ t . __ ( 'Enter Full Screen' ) } </ td >
119136 </ tr >
120- < tr >
121- < td > < kbd > ${ userOSKey } </ kbd > < kbd > +</ kbd > </ td >
137+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
138+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > +</ kbd > </ td >
139+ < td > ${ t . __ ( 'Zoom In' ) } </ td >
140+ </ tr >
141+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
142+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > =</ kbd > </ td >
122143 < td > ${ t . __ ( 'Zoom In' ) } </ td >
123144 </ tr >
124145 < tr >
125- < td > < kbd > ${ userOSKey } </ kbd > < kbd > -</ kbd > </ td >
146+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > -</ kbd > </ td >
126147 < td > ${ t . __ ( 'Zoom Out' ) } </ td >
127148 </ tr >
128149 < tr >
129- < td > < kbd > ${ userOSKey } </ kbd > < kbd > 0</ kbd > </ td >
150+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > 0</ kbd > </ td >
130151 < td > ${ t . __ ( 'Actual Size' ) } </ td >
131152 </ tr >
132- < tr >
133- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Shift</ kbd > + < kbd > S</ kbd > </ td >
153+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
154+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Shift</ kbd > + < kbd > S</ kbd > </ td >
134155 < td > ${ t . __ ( 'Toggle Sidebar' ) } </ td >
135156 </ tr >
136- < tr >
137- < td > < kbd > Option</ kbd > < kbd > ${ userOSKey } </ kbd > < kbd > I</ kbd > </ td >
157+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
158+ < td > < kbd > Shift</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > S</ kbd > </ td >
159+ < td > ${ t . __ ( 'Toggle Sidebar' ) } </ td >
160+ </ tr >
161+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
162+ < td > < kbd > Option</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > I</ kbd > </ td >
138163 < td > ${ t . __ ( 'Toggle DevTools for Zulip App' ) } </ td >
139164 </ tr >
140- < tr >
141- < td > < kbd > Option</ kbd > < kbd > ${ userOSKey } </ kbd > < kbd > U</ kbd > </ td >
165+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
166+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Shift</ kbd > + < kbd > I</ kbd > </ td >
167+ < td > ${ t . __ ( 'Toggle DevTools for Zulip App' ) } </ td >
168+ </ tr >
169+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
170+ < td > < kbd > Option</ kbd > + < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > U</ kbd > </ td >
171+ < td > ${ t . __ ( 'Toggle DevTools for Active Tab' ) } </ td >
172+ </ tr >
173+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
174+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > Shift</ kbd > + < kbd > U</ kbd > </ td >
142175 < td > ${ t . __ ( 'Toggle DevTools for Active Tab' ) } </ td >
143176 </ tr >
144177 < tr >
@@ -155,159 +188,19 @@ export default class ShortcutsSection extends BaseSection {
155188 < div class ="title "> ${ t . __ ( 'History Shortcuts' ) } </ div >
156189 < div class ="settings-card ">
157190 < table >
158- < tr >
159- < td > < kbd > ${ userOSKey } </ kbd > < kbd > ←</ kbd > </ td >
191+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
192+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > ←</ kbd > </ td >
160193 < td > ${ t . __ ( 'Back' ) } </ td >
161194 </ tr >
162- < tr >
163- < td > < kbd > ${ userOSKey } </ kbd > < kbd > →</ kbd > </ td >
164- < td > ${ t . __ ( 'Forward' ) } </ td >
165- </ tr >
166- </ table >
167- < div class ="setting-control "> </ div >
168- </ div >
169- < div class ="title "> Window Shortcuts</ div >
170- < div class ="settings-card ">
171- < table >
172- < tr >
173- < td > < kbd > ${ userOSKey } </ kbd > < kbd > M</ kbd > </ td >
174- < td > ${ t . __ ( 'Minimize' ) } </ td >
175- </ tr >
176- < tr >
177- < td > < kbd > ${ userOSKey } </ kbd > < kbd > W</ kbd > </ td >
178- < td > ${ t . __ ( 'Close' ) } </ td >
179- </ tr >
180- </ table >
181- < div class ="setting-control "> </ div >
182- </ div >
183- </ div >
184- ` ;
185- }
186-
187- templateWinLinHTML ( ) : string {
188- const userOSKey = 'Ctrl' ;
189-
190- return htmlEscape `
191- < div class ="settings-pane ">
192- < div class ="settings-card tip "> < p > < b > < i class ="material-icons md-14 "> settings</ i > ${ t . __ ( 'Tip' ) } : </ b > ${ t . __ ( 'These desktop app shortcuts extend the Zulip webapp\'s' ) } < span id ="open-hotkeys-link "> ${ t . __ ( 'keyboard shortcuts' ) } </ span > .</ p > </ div >
193- < div class ="title "> ${ t . __ ( 'Application Shortcuts' ) } </ div >
194- < div class ="settings-card ">
195- < table >
196- < tr >
197- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > ,</ kbd > </ td >
198- < td > ${ t . __ ( 'Settings' ) } </ td >
199- </ tr >
200- < tr >
201- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > K</ kbd > </ td >
202- < td > ${ t . __ ( 'Keyboard Shortcuts' ) } </ td >
203- </ tr >
204- < tr >
205- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Shift</ kbd > + < kbd > M</ kbd > </ td >
206- < td > ${ t . __ ( 'Toggle Do Not Disturb' ) } </ td >
207- </ tr >
208- < tr >
209- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > L</ kbd > </ td >
210- < td > ${ t . __ ( 'Log Out' ) } </ td >
211- </ tr >
212- < tr >
213- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Q</ kbd > </ td >
214- < td > ${ t . __ ( 'Quit Zulip' ) } </ td >
215- </ tr >
216- </ table >
217- < div class ="setting-control "> </ div >
218- </ div >
219- < div class ="title "> ${ t . __ ( 'Edit Shortcuts' ) } </ div >
220- < div class ="settings-card ">
221- < table >
222- < tr >
223- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Z</ kbd > </ td >
224- < td > ${ t . __ ( 'Undo' ) } </ td >
225- </ tr >
226- < tr >
227- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Y</ kbd > </ td >
228- < td > ${ t . __ ( 'Redo' ) } </ td >
229- </ tr >
230- < tr >
231- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > X</ kbd > </ td >
232- < td > ${ t . __ ( 'Cut' ) } </ td >
233- </ tr >
234- < tr >
235- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > C</ kbd > </ td >
236- < td > ${ t . __ ( 'Copy' ) } </ td >
237- </ tr >
238- < tr >
239- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > V</ kbd > </ td >
240- < td > ${ t . __ ( 'Paste' ) } </ td >
241- </ tr >
242- < tr >
243- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Shift</ kbd > + < kbd > V</ kbd > </ td >
244- < td > ${ t . __ ( 'Paste and Match Style' ) } </ td >
245- </ tr >
246- < tr >
247- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > A</ kbd > </ td >
248- < td > ${ t . __ ( 'Select All' ) } </ td >
249- </ tr >
250- </ table >
251- < div class ="setting-control "> </ div >
252- </ div >
253- < div class ="title "> ${ t . __ ( 'View Shortcuts' ) } </ div >
254- < div class ="settings-card ">
255- < table >
256- < tr >
257- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > R</ kbd > </ td >
258- < td > ${ t . __ ( 'Reload' ) } </ td >
259- </ tr >
260- < tr >
261- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Shift</ kbd > + < kbd > R</ kbd > </ td >
262- < td > ${ t . __ ( 'Hard Reload' ) } </ td >
263- </ tr >
264- < tr >
265- < td > < kbd > F11</ kbd > </ td >
266- < td > ${ t . __ ( 'Toggle Full Screen' ) } </ td >
267- </ tr >
268- < tr >
269- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > =</ kbd > </ td >
270- < td > ${ t . __ ( 'Zoom In' ) } </ td >
271- </ tr >
272- < tr >
273- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > -</ kbd > </ td >
274- < td > ${ t . __ ( 'Zoom Out' ) } </ td >
275- </ tr >
276- < tr >
277- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > 0</ kbd > </ td >
278- < td > ${ t . __ ( 'Actual Size' ) } </ td >
279- </ tr >
280- < tr >
281- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Shift</ kbd > + < kbd > S</ kbd > </ td >
282- < td > ${ t . __ ( 'Toggle Sidebar' ) } </ td >
283- </ tr >
284- < tr >
285- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Shift</ kbd > + < kbd > I</ kbd > </ td >
286- < td > ${ t . __ ( 'Toggle DevTools for Zulip App' ) } </ td >
287- </ tr >
288- < tr >
289- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Shift</ kbd > + < kbd > U</ kbd > </ td >
290- < td > ${ t . __ ( 'Toggle DevTools for Active Tab' ) } </ td >
291- </ tr >
292- < tr >
293- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Tab</ kbd > </ td >
294- < td > ${ t . __ ( 'Switch to Next Organization' ) } </ td >
295- </ tr >
296- < tr >
297- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > Shift</ kbd > + < kbd > Tab</ kbd > </ td >
298- < td > ${ t . __ ( 'Switch to Previous Organization' ) } </ td >
299- </ tr >
300- </ table >
301- < div class ="setting-control "> </ div >
302- </ div >
303- < div class ="title "> ${ t . __ ( 'History Shortcuts' ) } </ div >
304- < div class ="settings-card ">
305- < table >
306- < tr >
195+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
307196 < td > < kbd > Alt</ kbd > + < kbd > ←</ kbd > </ td >
308197 < td > ${ t . __ ( 'Back' ) } </ td >
309198 </ tr >
310- < tr >
199+ < tr ${ process . platform === 'darwin' ? '' : 'hidden' } >
200+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > →</ kbd > </ td >
201+ < td > ${ t . __ ( 'Forward' ) } </ td >
202+ </ tr >
203+ < tr ${ process . platform === 'darwin' ? 'hidden' : '' } >
311204 < td > < kbd > Alt</ kbd > + < kbd > →</ kbd > </ td >
312205 < td > ${ t . __ ( 'Forward' ) } </ td >
313206 </ tr >
@@ -318,11 +211,11 @@ export default class ShortcutsSection extends BaseSection {
318211 < div class ="settings-card ">
319212 < table >
320213 < tr >
321- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > M</ kbd > </ td >
214+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > M</ kbd > </ td >
322215 < td > ${ t . __ ( 'Minimize' ) } </ td >
323216 </ tr >
324217 < tr >
325- < td > < kbd > ${ userOSKey } </ kbd > + < kbd > W</ kbd > </ td >
218+ < td > < kbd > ${ cmdOrCtrl } </ kbd > + < kbd > W</ kbd > </ td >
326219 < td > ${ t . __ ( 'Close' ) } </ td >
327220 </ tr >
328221 </ table >
@@ -341,8 +234,7 @@ export default class ShortcutsSection extends BaseSection {
341234 }
342235
343236 init ( ) : void {
344- this . props . $root . innerHTML = ( process . platform === 'darwin' ) ?
345- this . templateMacHTML ( ) : this . templateWinLinHTML ( ) ;
237+ this . props . $root . innerHTML = this . templateHTML ( ) ;
346238 this . openHotkeysExternalLink ( ) ;
347239 }
348240}
0 commit comments