Skip to content

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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 23, 2025

Conversation

fioan89
Copy link
Collaborator

@fioan89 fioan89 commented May 22, 2025

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 in https://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 call envPageManager.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)

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 in https://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 call `envPageManager.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)

- resolves #66
@fioan89 fioan89 requested review from matifali and f0ssel May 22, 2025 20:28
@fioan89
Copy link
Collaborator Author

fioan89 commented May 22, 2025

Screen.Recording.2025-05-22.at.23.13.17.mov

Copy link
Member

@matifali matifali left a 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.

@fioan89
Copy link
Collaborator Author

fioan89 commented May 22, 2025

I have a private conversation with Evgenii Bulavin from JetBrains and I asked there for review.

@fioan89 fioan89 merged commit e4ce4c4 into main May 23, 2025
5 checks passed
@fioan89 fioan89 deleted the fix-url-refresh-after-switching-deployments branch May 23, 2025 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Deployment URL is not refreshed after log out and login to another deployment
2 participants