From 7531aef58b36c60255ebed1c9273cc6646971ac7 Mon Sep 17 00:00:00 2001 From: Vladimir Masarik Date: Thu, 1 Sep 2022 10:21:05 +0200 Subject: [PATCH] Fix settings page not displaying sing in properly Signed-off-by: Vladimir Masarik --- .../AuthProviders/ProviderSettingsItem.tsx | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx b/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx index e170aa2daa..6de5f9ad73 100644 --- a/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx +++ b/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx @@ -26,9 +26,10 @@ import { import { ApiRef, SessionApi, + ProfileInfoApi, + ProfileInfo, useApi, IconComponent, - SessionState, } from '@backstage/core-plugin-api'; /** @public */ @@ -36,23 +37,27 @@ export const ProviderSettingsItem = (props: { title: string; description: string; icon: IconComponent; - apiRef: ApiRef; + apiRef: ApiRef; }) => { const { title, description, icon: Icon, apiRef } = props; const api = useApi(apiRef); const [signedIn, setSignedIn] = useState(false); + const [profileEmail, setProfileEmail] = useState(''); useEffect(() => { let didCancel = false; - const subscription = api - .sessionState$() - .subscribe((sessionState: SessionState) => { - if (!didCancel) { - setSignedIn(sessionState === SessionState.SignedIn); - } - }); + const subscription = api.sessionState$().subscribe(() => { + if (!didCancel) { + api + .getProfile({ optional: false }) + .then((profile: ProfileInfo | undefined) => { + setSignedIn(profile !== undefined); + setProfileEmail(profile?.email ?? ''); + }); + } + }); return () => { didCancel = true; @@ -69,7 +74,9 @@ export const ProviderSettingsItem = (props: { primary={title} secondary={ - {description} + + {description}. Signed in as {profileEmail} + } secondaryTypographyProps={{ noWrap: true, style: { width: '80%' } }}