Adjust expansion bar display for small screens

This commit is contained in:
Corey 2024-05-24 13:30:52 -04:00
parent 09c5b24150
commit 734a3f3e3b
Signed by: coco
GPG Key ID: 051138DA6AEE3E60
2 changed files with 34 additions and 15 deletions

View File

@ -1,4 +1,10 @@
import { Box, ToggleButton, ToggleButtonGroup, Tooltip } from '@mui/material'; import {
Box,
ToggleButton,
ToggleButtonGroup,
Tooltip,
useMediaQuery,
} from '@mui/material';
import { ServerData } from '../../data/ServerData'; import { ServerData } from '../../data/ServerData';
const expansionButtons = [ const expansionButtons = [
@ -47,12 +53,22 @@ const expansionButtons = [
> >
SoA SoA
</ToggleButton>, </ToggleButton>,
<ToggleButton
key="addons"
value="addons"
aria-label="addons-enabled"
className="py-0"
disabled
>
+
</ToggleButton>,
]; ];
type ExpansionBarProps = { server: ServerData }; type ExpansionBarProps = { server: ServerData };
export default function ExpansionBar({ server }: ExpansionBarProps) { export default function ExpansionBar({ server }: ExpansionBarProps) {
const { expansions } = server; const { expansions } = server;
const isSmallScreen = useMediaQuery('(max-width:400px)');
const addons = ['acp', 'amk', 'asa', 'abyssea', 'voidwatch', 'rov', 'tvr']; const addons = ['acp', 'amk', 'asa', 'abyssea', 'voidwatch', 'rov', 'tvr'];
let enabledAddons = addons.filter((prop) => expansions[prop]); let enabledAddons = addons.filter((prop) => expansions[prop]);
@ -79,6 +95,7 @@ export default function ExpansionBar({ server }: ExpansionBarProps) {
> >
<ToggleButtonGroup <ToggleButtonGroup
size="small" size="small"
orientation={isSmallScreen ? 'vertical' : 'horizontal'}
value={ value={
expansions && [ expansions && [
expansions.rotz && 'rotz', expansions.rotz && 'rotz',
@ -89,20 +106,13 @@ export default function ExpansionBar({ server }: ExpansionBarProps) {
enabledAddons.length !== 0 && 'addons', enabledAddons.length !== 0 && 'addons',
] ]
} }
sx={{ '& button': { maxHeight: '1rem' } }} sx={{
'& button': {
maxHeight: '1rem',
},
}}
> >
{expansionButtons} {expansionButtons}
{enabledAddons.length !== 0 && (
<ToggleButton
key="addons"
value="addons"
aria-label="addons-enabled"
className="py-0"
disabled
>
+
</ToggleButton>
)}
</ToggleButtonGroup> </ToggleButtonGroup>
</Tooltip> </Tooltip>
</Box> </Box>

View File

@ -20,6 +20,7 @@ import {
Tooltip, Tooltip,
Typography, Typography,
alpha, alpha,
useMediaQuery,
} from '@mui/material'; } from '@mui/material';
import { import {
Children, Children,
@ -46,6 +47,7 @@ type ServerCardProps = {
export default function ServerCard({ server, children }: ServerCardProps) { export default function ServerCard({ server, children }: ServerCardProps) {
const { themeMode } = useThemeModeContext(); const { themeMode } = useThemeModeContext();
const isSmallScreen = useMediaQuery('(max-width:400px)');
const [clipboardTooltip, setClipboardTooltip] = useState('Copy server URL.'); const [clipboardTooltip, setClipboardTooltip] = useState('Copy server URL.');
const [clipboardTooltipOpen, setClipboardTooltipOpen] = useState(false); const [clipboardTooltipOpen, setClipboardTooltipOpen] = useState(false);
const handleClipboardTooltipClose = () => { const handleClipboardTooltipClose = () => {
@ -112,7 +114,7 @@ export default function ServerCard({ server, children }: ServerCardProps) {
return ( return (
<Card className="mb-2" raised={themeMode === 'light'}> <Card className="mb-2" raised={themeMode === 'light'}>
<Accordion <Accordion
className="my-0" className="my-0 min-w-fit"
disableGutters disableGutters
elevation={0} elevation={0}
square square
@ -186,7 +188,14 @@ export default function ServerCard({ server, children }: ServerCardProps) {
</Tooltip> </Tooltip>
</Box> </Box>
</Box> </Box>
<Box className="grow py-1 pl-4"> <Box
// className={
// isSmallScreen
// ? 'flex grow flex-col items-center justify-center py-1 pl-4'
// : 'grow py-1 pl-4'
// }
className="grow py-1 pl-4"
>
<Box className="flex content-center"> <Box className="flex content-center">
<Typography <Typography
variant="h5" variant="h5"