diff --git a/plugins/user-settings/src/components/FeatureFlagsList.tsx b/plugins/user-settings/src/components/FeatureFlagsList.tsx
index ec4ad51457..2636d0e66f 100644
--- a/plugins/user-settings/src/components/FeatureFlagsList.tsx
+++ b/plugins/user-settings/src/components/FeatureFlagsList.tsx
@@ -25,9 +25,7 @@ import {
} from '@backstage/core';
import { FlagItem } from './FeatureFlagsItem';
-type Props = {
- featureFlags: FeatureFlagsRegistryItem[];
-};
+type Props = { featureFlags: FeatureFlagsRegistryItem[] };
export const FeatureFlagsList = ({ featureFlags }: Props) => {
const featureFlagApi = useApi(featureFlagsApiRef);
diff --git a/plugins/user-settings/src/components/PinButton.tsx b/plugins/user-settings/src/components/PinButton.tsx
index f8017ef215..e36fc365f8 100644
--- a/plugins/user-settings/src/components/PinButton.tsx
+++ b/plugins/user-settings/src/components/PinButton.tsx
@@ -26,14 +26,16 @@ import LockOpenIcon from '@material-ui/icons/LockOpen';
import { ToggleButton } from '@material-ui/lab';
import { SidebarPinStateContext } from '@backstage/core';
+type PinIconProps = { isPinned: boolean };
+
+const PinIcon = ({ isPinned }: PinIconProps) =>
+ isPinned ? : ;
+
export const PinButton = () => {
const { isPinned, toggleSidebarPinState } = useContext(
SidebarPinStateContext,
);
- const PinIcon = () =>
- isPinned ? : ;
-
return (
{
toggleSidebarPinState();
}}
>
-
+
diff --git a/plugins/user-settings/src/components/ThemeToggle.tsx b/plugins/user-settings/src/components/ThemeToggle.tsx
index b041e1f76b..111bd838a8 100644
--- a/plugins/user-settings/src/components/ThemeToggle.tsx
+++ b/plugins/user-settings/src/components/ThemeToggle.tsx
@@ -17,7 +17,7 @@
import React, { cloneElement } from 'react';
import { useObservable } from 'react-use';
import AutoIcon from '@material-ui/icons/BrightnessAuto';
-import { AppTheme, appThemeApiRef, useApi } from '@backstage/core';
+import { appThemeApiRef, useApi } from '@backstage/core';
import ToggleButton from '@material-ui/lab/ToggleButton';
import ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';
import {
@@ -27,6 +27,42 @@ import {
Tooltip,
} from '@material-ui/core';
+type ThemeIconProps = {
+ id: string;
+ activeId: string | undefined;
+ icon: JSX.Element | undefined;
+};
+
+const ThemeIcon = ({ id, activeId, icon }: ThemeIconProps) =>
+ icon ? (
+ cloneElement(icon, {
+ color: activeId === id ? 'primary' : undefined,
+ })
+ ) : (
+
+ );
+
+type TooltipToggleButtonProps = {
+ children: JSX.Element;
+ title: string;
+ value: string;
+};
+
+// ToggleButtonGroup uses React.children.map instead of context
+// so wrapping with Tooltip breaks ToggleButton functionality.
+const TooltipToggleButton = ({
+ children,
+ title,
+ value,
+ ...props
+}: TooltipToggleButtonProps) => (
+
+
+ {children}
+
+
+);
+
export const ThemeToggle = () => {
const appThemeApi = useApi(appThemeApiRef);
const themeId = useObservable(
@@ -47,36 +83,6 @@ export const ThemeToggle = () => {
}
};
- // ToggleButtonGroup uses React.children.map instead of context
- // so wrapping with Tooltip breaks ToggleButton functionality.
- const TooltipToggleButton = ({
- children,
- title,
- value,
- ...props
- }: {
- children: JSX.Element;
- title: string;
- value: string;
- }) => (
-
-
- {children}
-
-
- );
-
- const ThemeIcon = ({ theme }: { theme: AppTheme }) => {
- const themeIcon = themeIds.find(t => t.id === theme.id)?.icon;
- return themeIcon ? (
- cloneElement(themeIcon, {
- color: themeId === theme.id ? 'primary' : undefined,
- })
- ) : (
-
- );
- };
-
return (
@@ -87,20 +93,24 @@ export const ThemeToggle = () => {
value={themeId ?? 'auto'}
onChange={handleSetTheme}
>
- {themeIds.map(theme => (
-
-
-
- ))}
-
-
+ {themeIds.map(theme => {
+ const themeIcon = themeIds.find(t => t.id === theme.id)?.icon;
+
+ return (
+
+
+
+ );
+ })}
+
+
-
-
+
+