From 301ba8deb2ddba4c0f352526cc40d4998bef5214 Mon Sep 17 00:00:00 2001 From: Devin Binnie <52460000+devinbinnie@users.noreply.github.com> Date: Fri, 4 Feb 2022 12:21:05 -0500 Subject: [PATCH] [MM-41392] Clean path name on browser pushes for subpaths (#1993) --- src/main/windows/windowManager.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/windows/windowManager.ts b/src/main/windows/windowManager.ts index 8f968485..3afcd6ab 100644 --- a/src/main/windows/windowManager.ts +++ b/src/main/windows/windowManager.ts @@ -542,9 +542,10 @@ export class WindowManager { handleBrowserHistoryPush = (e: IpcMainEvent, viewName: string, pathName: string) => { const currentView = this.viewManager?.views.get(viewName); - const redirectedViewName = urlUtils.getView(`${currentView?.tab.server.url}${pathName}`, Config.teams)?.name || viewName; + const cleanedPathName = pathName.replace(currentView?.tab.server.url.pathname || '', ''); + const redirectedViewName = urlUtils.getView(`${currentView?.tab.server.url}${cleanedPathName}`, Config.teams)?.name || viewName; if (this.viewManager?.closedViews.has(redirectedViewName)) { - this.viewManager.openClosedTab(redirectedViewName, `${currentView?.tab.server.url}${pathName}`); + this.viewManager.openClosedTab(redirectedViewName, `${currentView?.tab.server.url}${cleanedPathName}`); } let redirectedView = this.viewManager?.views.get(redirectedViewName) || currentView; if (redirectedView !== currentView && redirectedView?.tab.server.name === this.currentServerName && redirectedView?.isLoggedIn) { @@ -555,8 +556,8 @@ export class WindowManager { } // Special case check for Channels to not force a redirect to "/", causing a refresh - if (!(redirectedView !== currentView && redirectedView?.tab.type === TAB_MESSAGING && pathName === '/')) { - redirectedView?.view.webContents.send(BROWSER_HISTORY_PUSH, pathName); + if (!(redirectedView !== currentView && redirectedView?.tab.type === TAB_MESSAGING && cleanedPathName === '/')) { + redirectedView?.view.webContents.send(BROWSER_HISTORY_PUSH, cleanedPathName); if (redirectedView) { this.handleBrowserHistoryButton(e, redirectedView.name); }