Merge pull request #90 from Fab1en/features/fabien/join-channel-on-reload

[dev] Reflect channel change in URL
This commit is contained in:
Jonas Herzig 2020-04-25 14:43:15 +02:00 committed by GitHub
commit c44523b78a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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))
}
}