While all of the official Coder components have been designed to give the user the ability to add auth information when necessary (and will continue to be designed that way), sometimes a user might want our custom hooks only. In that case, how can they add something like an auth token, if they haven't placed any UI components for those forms to appear in?
Requirements
Coder plugin has mechanism for letting user add auth information
Fallback UI elements only appear when something is going wrong, or when user action is needed
Fallback UI elements do not appear if other Coder components have already been placed in the UI, and are definitely being rendered
Could also make it so that the fallback UI can still appear if the main Coder components are off-screen
Fallback UI elements do not permanently cover up other UI elements that the user has placed on the screen
For example, if the fallback auth UI is placed with absolute positioning, it's okay if it covers up other parts of the screen, as long as the user can keep scrolling down to show the part covered up. When the user has scrolled all the way to the bottom, nothing should be covered up.
While this won't ever be 100% feasible, simply because we can't own every user's Backstage deployment end-to-end, UI updates should be done in a way that reduces the risk of them conflicting with other plugins
Possible solutions
Place fallback UI components in the Coder provider itself, and render them out with React Portals when needed. Possible UI patterns:
A little UI bubble in the bottom-right corner that, when clicked, will trigger a modal for adding auth information. Kind of like a chatbot bubble, but not annoying.
A strip at the bottom of the screen that, when clicked, will show a modal
Part of umbrella issue #16
Problem
While all of the official Coder components have been designed to give the user the ability to add auth information when necessary (and will continue to be designed that way), sometimes a user might want our custom hooks only. In that case, how can they add something like an auth token, if they haven't placed any UI components for those forms to appear in?
Requirements
Possible solutions