fix: never render HeaderBar without runtime provider #587
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.
This cleans up the logic for displaying LoginModal (when baseUrl is undefined or user is unauthenticated) vs displaying the headerbar and app (when API requests can proceed). Previously, the runtime provider only wrapped the HeaderBar and app once login was successful, otherwise they would be rendered (along with the LoginModal) without a wrapping provider. This changes the behavior so that all provider-required components (Headerbar, locale provider, app) are exclusively rendered beneath a valid runtime
<Provider>
component. The LoginModal is now rendered independently outside the provider tree.Note that this has a small visual change when displaying the login modal - the headerbar skeleton no longer appears. This is OK as the login modal is only expected for development, but should be improved if we start using it for session reinitialization or for production login workflows.
A happy side-effect of this change is that there should be no more misleading /system/info 404 errors or "Runtime provider is not initialized" warnings in the console when showing the login dialog