Display list of providers from config as default
This commit is contained in:
@@ -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) => (
|
||||
<List subheader={<ListSubheader>Available Auth Providers</ListSubheader>}>
|
||||
{providerSettings}
|
||||
{providers}
|
||||
</List>
|
||||
);
|
||||
|
||||
+1
-1
@@ -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() ?? [];
|
||||
@@ -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 ?? <ConfiguredProviderSettings />;
|
||||
|
||||
return (
|
||||
<Card className={classes.root}>
|
||||
<CardHeader
|
||||
@@ -56,12 +60,8 @@ export const SettingsDialog = ({ providerSettings }: Props) => {
|
||||
/>
|
||||
<CardContent>
|
||||
<AppSettingsList />
|
||||
{providerSettings && (
|
||||
<>
|
||||
<Divider />
|
||||
<AuthProvidersList providerSettings={providerSettings} />
|
||||
</>
|
||||
)}
|
||||
<Divider />
|
||||
<AuthProvidersList providers={providers} />
|
||||
{featureFlags.length > 0 && (
|
||||
<>
|
||||
<Divider />
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
Reference in New Issue
Block a user