diff --git a/packages/application-extension/src/index.tsx b/packages/application-extension/src/index.tsx index 051b16c16090..3f9d62f929b8 100644 --- a/packages/application-extension/src/index.tsx +++ b/packages/application-extension/src/index.tsx @@ -262,26 +262,32 @@ const tree: JupyterFrontEndPlugin = { const treeMatch = args.path.match(treePattern); const workspaceMatch = args.path.match(workspacePattern); const match = treeMatch || workspaceMatch; - let path = decodeURI(match[1]); - // const { page, workspaces } = info.urls; + const path = decodeURI(match[1]); const workspace = PathExt.basename(resolver.name); + const query = URLExt.queryStringToObject(args.search); + const fileBrowserPath = query['file-browser-path']; + + // Remove the file browser path from the query string. + delete query['file-browser-path']; + + // Remove the tree portion of the URL. const url = (workspaceMatch ? URLExt.join(paths.urls.workspaces, workspace) : paths.urls.app) + - args.search + + URLExt.objectToQueryString(query) + args.hash; - // Remove the tree portion of the URL leaving the rest intact. router.navigate(url); - const query = URLExt.queryStringToObject(args.search); - if (query['file-browser-path']) { - path = query['file-browser-path']; - } - try { await commands.execute('filebrowser:open-path', { path }); + + if (fileBrowserPath) { + await commands.execute('filebrowser:open-path', { + path: fileBrowserPath + }); + } } catch (error) { console.warn('Tree routing failed.', error); }