From ae567d8125de07f92a123b9698fb1ae3fc0e8bdb Mon Sep 17 00:00:00 2001 From: Abhishek Jakhar Date: Sun, 25 Oct 2020 12:04:28 +0530 Subject: [PATCH] make user settings page responsive (#3084) --- .../src/components/General/General.tsx | 34 ++++++++++-------- .../src/components/General/ThemeToggle.tsx | 36 ++++++++++++++++--- 2 files changed, 51 insertions(+), 19 deletions(-) diff --git a/plugins/user-settings/src/components/General/General.tsx b/plugins/user-settings/src/components/General/General.tsx index b6d30d0103..2d30c00eec 100644 --- a/plugins/user-settings/src/components/General/General.tsx +++ b/plugins/user-settings/src/components/General/General.tsx @@ -14,24 +14,28 @@ * limitations under the License. */ import { InfoCard } from '@backstage/core'; -import { Grid, List } from '@material-ui/core'; +import { Grid, List, useMediaQuery, useTheme } from '@material-ui/core'; import React from 'react'; import { PinButton } from './PinButton'; import { Profile } from './Profile'; import { ThemeToggle } from './ThemeToggle'; -export const General = () => ( - - - +export const General = () => { + const theme = useTheme(); + const fullScreen = useMediaQuery(theme.breakpoints.down('sm')); + return ( + + + + + + + + + {!fullScreen && } + + + - - - - - - - - - -); + ); +}; diff --git a/plugins/user-settings/src/components/General/ThemeToggle.tsx b/plugins/user-settings/src/components/General/ThemeToggle.tsx index dc24a61f8f..e142b6bf1e 100644 --- a/plugins/user-settings/src/components/General/ThemeToggle.tsx +++ b/plugins/user-settings/src/components/General/ThemeToggle.tsx @@ -25,6 +25,7 @@ import { ListItemText, ListItemSecondaryAction, Tooltip, + makeStyles, } from '@material-ui/core'; type ThemeIconProps = { @@ -48,6 +49,29 @@ type TooltipToggleButtonProps = { value: string; }; +const useStyles = makeStyles(theme => ({ + list: { + [theme.breakpoints.down('xs')]: { + padding: `0 0 12px`, + }, + }, + listItemText: { + [theme.breakpoints.down('xs')]: { + paddingRight: 0, + paddingLeft: 0, + }, + }, + listItemSecondaryAction: { + [theme.breakpoints.down('xs')]: { + width: '100%', + top: 'auto', + right: 'auto', + position: 'relative', + transform: 'unset', + }, + }, +})); + // ToggleButtonGroup uses React.children.map instead of context // so wrapping with Tooltip breaks ToggleButton functionality. const TooltipToggleButton = ({ @@ -64,6 +88,7 @@ const TooltipToggleButton = ({ ); export const ThemeToggle = () => { + const classes = useStyles(); const appThemeApi = useApi(appThemeApiRef); const themeId = useObservable( appThemeApi.activeThemeId$(), @@ -84,9 +109,13 @@ export const ThemeToggle = () => { }; return ( - - - + + + { > {themeIds.map(theme => { const themeIcon = themeIds.find(t => t.id === theme.id)?.icon; - return (