diff --git a/app/index.js b/app/index.js index c0da7b6..09f2249 100644 --- a/app/index.js +++ b/app/index.js @@ -792,6 +792,26 @@ class GlobalBindings { this.requestMove = (user, channel) => { if (this.connected()) { user.model.setChannel(channel.model) + + let currentUrl = url.parse(document.location.href, true) + // delete search param so that query one can be taken into account + delete currentUrl.search + + // get full channel path + if( channel.parent() ){ // in case this channel is not Root + let parent = channel.parent() + currentUrl.query.channelName = channel.name() + while( parent.parent() ){ + currentUrl.query.channelName = parent.name() + '/' + currentUrl.query.channelName + parent = parent.parent() + } + } else { + // there is no channelName as we moved to Root + delete currentUrl.query.channelName + } + + // reflect this change in URL + window.history.pushState(null, channel.name(), url.format(currentUrl)) } }