@@ -58,6 +58,11 @@ import QuickSettingsButton from "./QuickSettingsButton";
58
58
import { useSettingValue } from "../../../hooks/useSettings" ;
59
59
import UserMenu from "../../structures/UserMenu" ;
60
60
import IndicatorScrollbar from "../../structures/IndicatorScrollbar" ;
61
+ import { isMac } from "../../../Keyboard" ;
62
+ import { useDispatcher } from "../../../hooks/useDispatcher" ;
63
+ import defaultDispatcher from "../../../dispatcher/dispatcher" ;
64
+ import { ActionPayload } from "../../../dispatcher/payloads" ;
65
+ import { Action } from "../../../dispatcher/actions" ;
61
66
62
67
const useSpaces = ( ) : [ Room [ ] , MetaSpace [ ] , Room [ ] , SpaceKey ] => {
63
68
const invites = useEventEmitterState < Room [ ] > ( SpaceStore . instance , UPDATE_INVITED_SPACES , ( ) => {
@@ -293,6 +298,12 @@ const SpacePanel = () => {
293
298
return ( ) => UIStore . instance . stopTrackingElementDimensions ( "SpacePanel" ) ;
294
299
} , [ ] ) ;
295
300
301
+ useDispatcher ( defaultDispatcher , ( payload : ActionPayload ) => {
302
+ if ( payload . action === Action . ToggleSpacePanel ) {
303
+ setPanelCollapsed ( ! isPanelCollapsed ) ;
304
+ }
305
+ } ) ;
306
+
296
307
return (
297
308
< DragDropContext onDragEnd = { result => {
298
309
if ( ! result . destination ) return ; // dropped outside the list
@@ -307,7 +318,21 @@ const SpacePanel = () => {
307
318
aria-label = { _t ( "Spaces" ) }
308
319
ref = { ref }
309
320
>
310
- < UserMenu isPanelCollapsed = { isPanelCollapsed } />
321
+ < UserMenu isPanelCollapsed = { isPanelCollapsed } >
322
+ < AccessibleTooltipButton
323
+ className = { classNames ( "mx_SpacePanel_toggleCollapse" , { expanded : ! isPanelCollapsed } ) }
324
+ onClick = { ( ) => setPanelCollapsed ( ! isPanelCollapsed ) }
325
+ title = { isPanelCollapsed ? _t ( "Expand" ) : _t ( "Collapse" ) }
326
+ tooltip = { < div >
327
+ < div className = "mx_Tooltip_title" >
328
+ { isPanelCollapsed ? _t ( "Expand" ) : _t ( "Collapse" ) }
329
+ </ div >
330
+ < div className = "mx_Tooltip_sub" >
331
+ { isMac ? "⌘ + ⇧ + D" : "Ctrl + Shift + D" }
332
+ </ div >
333
+ </ div > }
334
+ />
335
+ </ UserMenu >
311
336
< Droppable droppableId = "top-level-spaces" >
312
337
{ ( provided , snapshot ) => (
313
338
< IndicatorScrollbar
@@ -327,14 +352,7 @@ const SpacePanel = () => {
327
352
</ IndicatorScrollbar >
328
353
) }
329
354
</ Droppable >
330
- < AccessibleTooltipButton
331
- className = { classNames ( "mx_SpacePanel_toggleCollapse" , { expanded : ! isPanelCollapsed } ) }
332
- onClick = { ( ) => setPanelCollapsed ( ! isPanelCollapsed ) }
333
- title = { isPanelCollapsed ? _t ( "Expand space panel" ) : _t ( "Collapse space panel" ) }
334
- forceHide = { ! isPanelCollapsed }
335
- >
336
- { ! isPanelCollapsed ? _t ( "Collapse" ) : null }
337
- </ AccessibleTooltipButton >
355
+
338
356
{ metaSpacesEnabled && < QuickSettingsButton isPanelCollapsed = { isPanelCollapsed } /> }
339
357
</ ul >
340
358
) }
0 commit comments