diff --git a/.changeset/lazy-gorillas-remain.md b/.changeset/lazy-gorillas-remain.md new file mode 100644 index 0000000000..f0fdb9bedf --- /dev/null +++ b/.changeset/lazy-gorillas-remain.md @@ -0,0 +1,5 @@ +--- +'@backstage/core': patch +--- + +SignInPage: Show login page while pop-up is being displayed when `auto` prop is set. diff --git a/packages/core/src/layout/SignInPage/SignInPage.tsx b/packages/core/src/layout/SignInPage/SignInPage.tsx index 6a8dcf454e..cfe543f9ab 100644 --- a/packages/core/src/layout/SignInPage/SignInPage.tsx +++ b/packages/core/src/layout/SignInPage/SignInPage.tsx @@ -89,7 +89,7 @@ export const SingleSignInPage = ({ const [autoShowPopup, setAutoShowPopup] = useState(auto ?? false); // Defaults to true so that an initial check for existing user session is made - const [retry, setRetry] = useState<{} | boolean | undefined>(true); + const [retry, setRetry] = useState<{} | boolean | undefined>(undefined); const [error, setError] = useState(); // The SignIn component takes some time to decide whether the user is logged-in or not. @@ -110,6 +110,7 @@ export const SingleSignInPage = ({ if (!identity && autoShowPopup) { // Unless auto is set to true, this step should not happen. // When user intentionally clicks the Sign In button, autoShowPopup is set to true + setShowLoginPage(true); identity = await authApi.getBackstageIdentity({ instantPopup: true, }); @@ -138,9 +139,7 @@ export const SingleSignInPage = ({ } }; - if (retry) { - login(); - } + login(); }, [onResult, authApi, retry, autoShowPopup]); return showLoginPage ? (