@@ -26,9 +26,9 @@ import { Git, IGitExtension } from './tokens';
2626import { addCloneButton } from './widgets/gitClone' ;
2727import { GitWidget } from './widgets/GitWidget' ;
2828
29+ export { DiffModel } from './components/diff/model' ;
2930export { NotebookDiff } from './components/diff/NotebookDiff' ;
3031export { PlainTextDiff } from './components/diff/PlainTextDiff' ;
31- export { DiffModel } from './components/diff/model' ;
3232export { Git , IGitExtension } from './tokens' ;
3333
3434/**
@@ -74,7 +74,11 @@ async function activate(
7474 let settings : ISettingRegistry . ISettings ;
7575 let serverSettings : Git . IServerSettings ;
7676 // Get a reference to the default file browser extension
77- let filebrowser = factory . tracker . currentWidget ;
77+ // We don't use the current tracked browser because extension like jupyterlab-github
78+ // or jupyterlab-gitlab are defining new filebrowsers that we don't support.
79+ // And it is unlikely that another browser than the default will be used.
80+ // Ref: https://github.com/jupyterlab/jupyterlab-git/issues/1014
81+ const fileBrowser = factory . defaultBrowser ;
7882 translator = translator || nullTranslator ;
7983 const trans = translator . load ( 'jupyterlab_git' ) ;
8084
@@ -133,8 +137,8 @@ async function activate(
133137 gitExtension = new GitExtension ( docmanager , app . docRegistry , settings ) ;
134138
135139 // Whenever we restore the application, sync the Git extension path
136- Promise . all ( [ app . restored , filebrowser . model . restored ] ) . then ( ( ) => {
137- gitExtension . pathRepository = filebrowser . model . path ;
140+ Promise . all ( [ app . restored , fileBrowser . model . restored ] ) . then ( ( ) => {
141+ gitExtension . pathRepository = fileBrowser . model . path ;
138142 } ) ;
139143
140144 const onPathChanged = (
@@ -145,28 +149,15 @@ async function activate(
145149 } ;
146150
147151 // Whenever the file browser path changes, sync the Git extension path
148- filebrowser . model . pathChanged . connect ( onPathChanged ) ;
152+ fileBrowser . model . pathChanged . connect ( onPathChanged ) ;
149153
150154 const refreshBrowser = ( ) => {
151- filebrowser . model . refresh ( ) ;
155+ fileBrowser . model . refresh ( ) ;
152156 } ;
153157
154158 // Whenever the `HEAD` of the Git repository changes, refresh the file browser
155159 gitExtension . headChanged . connect ( refreshBrowser ) ;
156160
157- // Handle file browser changes
158- factory . tracker . currentChanged . connect ( ( _ , browser ) => {
159- filebrowser . model . pathChanged . disconnect ( onPathChanged ) ;
160-
161- filebrowser = browser ;
162- gitExtension . pathRepository = filebrowser . model . path ;
163- filebrowser . model . pathChanged . connect ( onPathChanged ) ;
164-
165- if ( settings ) {
166- addCloneButton ( gitExtension , filebrowser , app . commands ) ;
167- }
168- } ) ;
169-
170161 // Whenever a user adds/renames/saves/deletes/modifies a file within the lab environment, refresh the Git status
171162 app . serviceManager . contents . fileChanged . connect ( ( ) =>
172163 gitExtension . refreshStatus ( )
@@ -175,14 +166,14 @@ async function activate(
175166 // Provided we were able to load application settings, create the extension widgets
176167 if ( settings ) {
177168 // Add JupyterLab commands
178- addCommands ( app , gitExtension , factory . tracker , settings , trans ) ;
169+ addCommands ( app , gitExtension , fileBrowser . model , settings , trans ) ;
179170
180171 // Create the Git widget sidebar
181172 const gitPlugin = new GitWidget (
182173 gitExtension ,
183174 settings ,
184175 app . commands ,
185- factory . tracker ,
176+ fileBrowser . model ,
186177 trans
187178 ) ;
188179 gitPlugin . id = 'jp-git-sessions' ;
@@ -205,13 +196,13 @@ async function activate(
205196 }
206197
207198 // Add a clone button to the file browser extension toolbar
208- addCloneButton ( gitExtension , filebrowser , app . commands ) ;
199+ addCloneButton ( gitExtension , fileBrowser , app . commands ) ;
209200
210201 // Add the status bar widget
211202 addStatusBarWidget ( statusBar , gitExtension , settings , trans ) ;
212203
213204 // Add the context menu items for the default file browser
214- addFileBrowserContextMenu ( gitExtension , factory . tracker , app . contextMenu ) ;
205+ addFileBrowserContextMenu ( gitExtension , fileBrowser , app . contextMenu ) ;
215206 }
216207
217208 // Register diff providers
0 commit comments