mirror of
https://github.com/Unleash/unleash.git
synced 2025-10-27 11:02:16 +01:00
Update the design of change request filters to be one contiguous button instead of separate buttons.
This is in prep for adding a new set of filters, which will make each group visually separated.
This commit is contained in:
parent
dc745cfac8
commit
0efae21e66
@ -1,22 +1,48 @@
|
|||||||
import { Box, Chip, styled } from '@mui/material';
|
import { Box, Chip, styled, type ChipProps } from '@mui/material';
|
||||||
import { useState, type FC } from 'react';
|
import { useState, type FC } from 'react';
|
||||||
|
|
||||||
const StyledChip = styled(Chip)(({ theme }) => ({
|
const makeStyledChip = (ariaControlTarget: string) =>
|
||||||
borderRadius: `${theme.shape.borderRadius}px`,
|
styled(({ ...props }: ChipProps) => (
|
||||||
padding: theme.spacing(0.5),
|
<Chip variant='outlined' aria-controls={ariaControlTarget} {...props} />
|
||||||
fontSize: theme.typography.body2.fontSize,
|
))<ChipProps>(({ theme, label }) => ({
|
||||||
height: 'auto',
|
padding: theme.spacing(0.5),
|
||||||
'&[aria-current="true"]': {
|
fontSize: theme.typography.body2.fontSize,
|
||||||
backgroundColor: theme.palette.secondary.light,
|
height: 'auto',
|
||||||
fontWeight: 'bold',
|
'&[aria-current="true"]': {
|
||||||
borderColor: theme.palette.primary.main,
|
backgroundColor: theme.palette.secondary.light,
|
||||||
color: theme.palette.primary.main,
|
fontWeight: 'bold',
|
||||||
},
|
borderColor: theme.palette.primary.main,
|
||||||
':focus-visible': {
|
color: theme.palette.primary.main,
|
||||||
outline: `1px solid ${theme.palette.primary.main}`,
|
},
|
||||||
borderColor: theme.palette.primary.main,
|
':focus-visible': {
|
||||||
},
|
outline: `1px solid ${theme.palette.primary.main}`,
|
||||||
}));
|
borderColor: theme.palette.primary.main,
|
||||||
|
},
|
||||||
|
|
||||||
|
borderRadius: 0,
|
||||||
|
'&:first-of-type': {
|
||||||
|
borderTopLeftRadius: theme.shape.borderRadius,
|
||||||
|
borderBottomLeftRadius: theme.shape.borderRadius,
|
||||||
|
},
|
||||||
|
'&:last-of-type': {
|
||||||
|
borderTopRightRadius: theme.shape.borderRadius,
|
||||||
|
borderBottomRightRadius: theme.shape.borderRadius,
|
||||||
|
},
|
||||||
|
|
||||||
|
'& .MuiChip-label': {
|
||||||
|
position: 'relative',
|
||||||
|
textAlign: 'center',
|
||||||
|
'&::before': {
|
||||||
|
content: `'${label}'`,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
visibility: 'hidden',
|
||||||
|
height: 0,
|
||||||
|
display: 'block',
|
||||||
|
overflow: 'hidden',
|
||||||
|
userSelect: 'none',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
export type ChangeRequestQuickFilter = 'Created' | 'Approval Requested';
|
export type ChangeRequestQuickFilter = 'Created' | 'Approval Requested';
|
||||||
|
|
||||||
@ -34,12 +60,11 @@ const Wrapper = styled(Box)(({ theme }) => ({
|
|||||||
gap: theme.spacing(2),
|
gap: theme.spacing(2),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const StyledContainer = styled(Box)(({ theme }) => ({
|
const StyledContainer = styled(Box)({
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
flexWrap: 'wrap',
|
flexWrap: 'wrap',
|
||||||
gap: theme.spacing(1),
|
});
|
||||||
}));
|
|
||||||
|
|
||||||
export const ChangeRequestFilters: FC<IChangeRequestFiltersProps> = ({
|
export const ChangeRequestFilters: FC<IChangeRequestFiltersProps> = ({
|
||||||
onSelectionChange,
|
onSelectionChange,
|
||||||
@ -57,22 +82,20 @@ export const ChangeRequestFilters: FC<IChangeRequestFiltersProps> = ({
|
|||||||
onSelectionChange(value);
|
onSelectionChange(value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const StyledChip = makeStyledChip(ariaControlTarget);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Wrapper>
|
<Wrapper>
|
||||||
<StyledContainer>
|
<StyledContainer>
|
||||||
<StyledChip
|
<StyledChip
|
||||||
label={'Created'}
|
label={'Created'}
|
||||||
variant='outlined'
|
|
||||||
aria-current={selected === 'Created'}
|
aria-current={selected === 'Created'}
|
||||||
aria-controls={ariaControlTarget}
|
|
||||||
onClick={handleSelectionChange('Created')}
|
onClick={handleSelectionChange('Created')}
|
||||||
title={'Show change requests created by you'}
|
title={'Show change requests created by you'}
|
||||||
/>
|
/>
|
||||||
<StyledChip
|
<StyledChip
|
||||||
label={'Approval Requested'}
|
label={'Approval Requested'}
|
||||||
variant='outlined'
|
|
||||||
aria-current={selected === 'Approval Requested'}
|
aria-current={selected === 'Approval Requested'}
|
||||||
aria-controls={ariaControlTarget}
|
|
||||||
onClick={handleSelectionChange('Approval Requested')}
|
onClick={handleSelectionChange('Approval Requested')}
|
||||||
title={'Show change requests requesting your approval'}
|
title={'Show change requests requesting your approval'}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user