- Notifications
You must be signed in to change notification settings - Fork1
fix: url refresh after switching deployments#119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Merged
Merged
Uh oh!
There was an error while loading.Please reload this page.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
The main env header page API is quite limiting, in the sense that the title is never allowed to change.Today we display the Coder URL as the title. However, if the user switches between two deployments vialog out and then log in, the URL is never refreshed, leading to a confusing UI (URL is old, while workspacesare from the new deployment)JetBrains suggested a workaround inhttps://youtrack.jetbrains.com/issue/TBX-14421/ by creating a new envpage instance with the updated title after each deployment switch. In which case Toolbox redraws the mainscreen when page state changes.I tested the workaround and indeed it works but with a caveat. The new env page is refreshed only whenToolbox window page is made visible or when navigating from main env page to a single env page and thenback to the main page. For some reason, if we call `envPageManager.showPluginEnvironmentsPage()`` from theauthentication page displayed in `getOverrideUiPage() it doesn't trigger the new env refresh giving thefalse impression that the URL won't change. In fact this was the reason why I missed this workaround in previously.It is interesting that if I first navigate to a blank page - `toolboxUi.showUiPage(emptyPage)` - and thenimmediately call `envPageManager.showPluginEnvironmentsPage()`, doing this rapid sequence seems to do thetrick without any visible artifacts (it happens so fast that we can't see the blank page being rendered)-resolves#66
Screen.Recording.2025-05-22.at.23.13.17.mov |
matifali approved these changesMay 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
LGTM. Maybe we should ask someone from JetBrains team to review.
I have a private conversation with Evgenii Bulavin from JetBrains and I asked there for review. |
e4ce4c4
intomain 5 checks passed
Uh oh!
There was an error while loading.Please reload this page.
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The main env header page API is quite limiting, in the sense that the title is never allowed to change. Today we display the Coder URL as the title. However, if the user switches between two deployments via log out and then log in, the URL is never refreshed, leading to a confusing UI (URL is old, while workspaces are from the new deployment)
JetBrains suggested a workaround inhttps://youtrack.jetbrains.com/issue/TBX-14421/ by creating a new env page instance with the updated title after each deployment switch. In which case Toolbox redraws the main screen when page state changes.
I tested the workaround and indeed it works but with a caveat. The new env page is refreshed only when Toolbox window page is made visible or when navigating from main env page to a single env page and then back to the main page. For some reason, if we call
envPageManager.showPluginEnvironmentsPage()`` from the authentication page displayed in
getOverrideUiPage() it doesn't trigger the new env refresh giving the false impression that the URL won't change. In fact this was the reason why I missed this workaround in previously.It is interesting that if I first navigate to a blank page -
toolboxUi.showUiPage(emptyPage)
- and then immediately callenvPageManager.showPluginEnvironmentsPage()
, doing this rapid sequence seems to do the trick without any visible artifacts (it happens so fast that we can't see the blank page being rendered)