diff --git a/plugins/user-settings/src/components/AuthProviderList.tsx b/plugins/user-settings/src/components/AuthProviderList.tsx index 659af7cf19..8f4d41319c 100644 --- a/plugins/user-settings/src/components/AuthProviderList.tsx +++ b/plugins/user-settings/src/components/AuthProviderList.tsx @@ -18,11 +18,11 @@ import React from 'react'; import { List, ListSubheader } from '@material-ui/core'; type Props = { - providerSettings: React.ReactNode; + providers: React.ReactNode; }; -export const AuthProvidersList = ({ providerSettings }: Props) => ( +export const AuthProvidersList = ({ providers }: Props) => ( Available Auth Providers}> - {providerSettings} + {providers} ); diff --git a/plugins/user-settings/src/components/DefaultProviderSettings.tsx b/plugins/user-settings/src/components/ConfiguredProviderSettings.tsx similarity index 97% rename from plugins/user-settings/src/components/DefaultProviderSettings.tsx rename to plugins/user-settings/src/components/ConfiguredProviderSettings.tsx index 646bbb0603..99351e2984 100644 --- a/plugins/user-settings/src/components/DefaultProviderSettings.tsx +++ b/plugins/user-settings/src/components/ConfiguredProviderSettings.tsx @@ -29,7 +29,7 @@ import React from 'react'; import { OAuthProviderSettings } from './OAuthProviderSettings'; import { OIDCProviderSettings } from './OIDCProviderSettings'; -export const DefaultProviderSettings = () => { +export const ConfiguredProviderSettings = () => { const configApi = useApi(configApiRef); const providersConfig = configApi.getOptionalConfig('auth.providers'); const providers = providersConfig?.keys() ?? []; diff --git a/plugins/user-settings/src/components/SettingsDialog.tsx b/plugins/user-settings/src/components/SettingsDialog.tsx index c121a0b9cb..69ec4fb8ee 100644 --- a/plugins/user-settings/src/components/SettingsDialog.tsx +++ b/plugins/user-settings/src/components/SettingsDialog.tsx @@ -29,6 +29,8 @@ import { SignInAvatar } from './SignInAvatar'; import { UserSettingsMenu } from './UserSettingsMenu'; import { useUserProfile } from './useUserProfileInfo'; import { useApi, featureFlagsApiRef } from '@backstage/core'; +import { ConfiguredProviderSettings } from './ConfiguredProviderSettings'; +import { ProviderSettings } from './UserSettings'; const useStyles = makeStyles({ root: { @@ -37,7 +39,7 @@ const useStyles = makeStyles({ }); type Props = { - providerSettings?: React.ReactNode; + providerSettings?: ProviderSettings; }; export const SettingsDialog = ({ providerSettings }: Props) => { @@ -46,6 +48,8 @@ export const SettingsDialog = ({ providerSettings }: Props) => { const featureFlagsApi = useApi(featureFlagsApiRef); const featureFlags = featureFlagsApi.getRegisteredFlags(); + const providers = providerSettings ?? ; + return ( { /> - {providerSettings && ( - <> - - - - )} + + {featureFlags.length > 0 && ( <> diff --git a/plugins/user-settings/src/components/UserSettings.tsx b/plugins/user-settings/src/components/UserSettings.tsx index a5d9bd7778..c91002d7d7 100644 --- a/plugins/user-settings/src/components/UserSettings.tsx +++ b/plugins/user-settings/src/components/UserSettings.tsx @@ -21,8 +21,17 @@ import { SettingsDialog } from './SettingsDialog'; import { SidebarItem, SidebarContext } from '@backstage/core'; import { useUserProfile } from './useUserProfileInfo'; +export type ProviderSettings = JSX.Element; + type Props = { - providerSettings?: React.ReactNode; + /** + * Available auth providers. Providers will be rendered as children + * of a MUI List. + * + * If undefined, providers that are configured in app-config.yaml + * will be displayed instead. + */ + providerSettings?: ProviderSettings; }; export const UserSettings = ({ providerSettings }: Props) => {