@@ -11,6 +11,8 @@ export class Navigation
1111{
1212 private isNavigationOpened : boolean = true ;
1313 private lastSort ;
14+ private isExtensionOn : boolean = true ;
15+
1416
1517 constructor ( private structure : Structure , private pubsub : PubSub , private views : Views , private settingsStore : SettingsStore )
1618 {
@@ -63,6 +65,7 @@ export class Navigation
6365 */
6466 onToggleNavigationIsOpen ( isOpen ?: boolean )
6567 {
68+ console . log ( 'wut' )
6669 this . isNavigationOpened = isOpen !== undefined ? isOpen : ! this . isNavigationOpened
6770
6871 this . pubsub . publish ( EVENT_TOGGLE_NAVIGATION , this . isNavigationOpened ) ; // changes on top level are required
@@ -75,14 +78,30 @@ export class Navigation
7578 */
7679 onToggleExtensionIsOn ( )
7780 {
78- this . pubsub . publish ( EVENT_TOGGLE_EXTENSION ) ;
81+ this . isExtensionOn = ! this . isExtensionOn
82+ this . pubsub . publish ( EVENT_TOGGLE_EXTENSION , this . isExtensionOn ) ;
83+ this . views . redrawView ( 'navigation' ) ;
84+ }
85+
86+
87+ /**
88+ * Once navigation is collapsed, pointer-events are turned off.
89+ * This callback is attached to top-level element that accepts pointer events.
90+ * So once click is registred, this should open expend navigation.
91+ */
92+ onMaybeOpenNavigation ( e : MouseEvent )
93+ {
94+ if ( ( e . target as HTMLElement ) . classList . contains ( 'gitlab-tree-plugin__navigation' ) && ! this . isNavigationOpened )
95+ {
96+ this . onToggleNavigationIsOpen ( ) ;
97+ }
7998 }
8099
81100
82101 render ( ) : any
83102 {
84103 return (
85- < div >
104+ < div class = "gitlab-tree-plugin__navigation" onclick = { ( e ) => this . onMaybeOpenNavigation ( e ) } >
86105
87106 < div class = "gitlab-tree-plugin__files" >
88107
@@ -92,7 +111,7 @@ export class Navigation
92111
93112 < div class = "gitlab-tree-plugin__menu" >
94113
95- < div class = { `gitlab-tree-plugin__menu__item ${ this . isNavigationOpened ? '' : 'gitlab-tree-plugin--is-hidden' } ` } title = "Turn extension off" onclick = { ( ) => this . onToggleExtensionIsOn ( ) } >
114+ < div id = "gitlab-tree-plugin__toggle-on" class = { `gitlab-tree-plugin__menu__item ${ this . isNavigationOpened ? '' : 'gitlab-tree-plugin--is-hidden' } ${ this . isExtensionOn ? '' : 'gitlab-tree-plugin--is-off' } ` } title = { this . isExtensionOn ? "Turn extension off" : "Turn extension on" } onclick = { ( ) => this . onToggleExtensionIsOn ( ) } >
96115
97116 < i class = "fa fa-power-off" > </ i >
98117
0 commit comments