mirror of
https://github.com/Unleash/unleash.git
synced 2025-10-27 11:02:16 +01:00
feat: add milestone progression automation UI (#10743)
This commit is contained in:
parent
bade23974e
commit
ce1fb144d7
@ -1,5 +1,6 @@
|
||||
import Delete from '@mui/icons-material/Delete';
|
||||
import { styled } from '@mui/material';
|
||||
import Add from '@mui/icons-material/Add';
|
||||
import { styled, IconButton, Button } from '@mui/material';
|
||||
import { DELETE_FEATURE_STRATEGY } from '@server/types/permissions';
|
||||
import PermissionIconButton from 'component/common/PermissionIconButton/PermissionIconButton';
|
||||
import { useReleasePlansApi } from 'hooks/api/actions/useReleasePlansApi/useReleasePlansApi';
|
||||
@ -22,6 +23,7 @@ import { RemoveReleasePlanChangeRequestDialog } from './ChangeRequest/RemoveRele
|
||||
import { StartMilestoneChangeRequestDialog } from './ChangeRequest/StartMilestoneChangeRequestDialog.tsx';
|
||||
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
|
||||
import { Truncator } from 'component/common/Truncator/Truncator';
|
||||
import { useUiFlag } from 'hooks/useUiFlag';
|
||||
|
||||
const StyledContainer = styled('div')(({ theme }) => ({
|
||||
padding: theme.spacing(2),
|
||||
@ -69,12 +71,47 @@ const StyledBody = styled('div')(({ theme }) => ({
|
||||
}));
|
||||
|
||||
const StyledConnection = styled('div')(({ theme }) => ({
|
||||
width: 4,
|
||||
height: theme.spacing(6),
|
||||
backgroundColor: theme.palette.divider,
|
||||
marginLeft: theme.spacing(3.25),
|
||||
}));
|
||||
|
||||
const StyledConnectionSimple = styled('div')(({ theme }) => ({
|
||||
width: 4,
|
||||
height: theme.spacing(2),
|
||||
backgroundColor: theme.palette.divider,
|
||||
marginLeft: theme.spacing(3.25),
|
||||
}));
|
||||
|
||||
const StyledConnectionContainer = styled('div')(({ theme }) => ({
|
||||
position: 'relative',
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
}));
|
||||
|
||||
const StyledAddAutomationIconButton = styled(IconButton)(({ theme }) => ({
|
||||
position: 'absolute',
|
||||
left: theme.spacing(2),
|
||||
top: '12px',
|
||||
width: 24,
|
||||
height: 24,
|
||||
border: `1px solid ${theme.palette.primary.main}`,
|
||||
backgroundColor: theme.palette.background.elevation2,
|
||||
zIndex: 1,
|
||||
'& svg': {
|
||||
fontSize: 16,
|
||||
},
|
||||
}));
|
||||
|
||||
const StyledAddAutomationButton = styled(Button)(({ theme }) => ({
|
||||
marginLeft: theme.spacing(3),
|
||||
textTransform: 'none',
|
||||
fontWeight: theme.typography.fontWeightBold,
|
||||
padding: 0,
|
||||
minWidth: 'auto',
|
||||
}));
|
||||
|
||||
interface IReleasePlanProps {
|
||||
plan: IReleasePlan;
|
||||
environmentIsDisabled?: boolean;
|
||||
@ -118,6 +155,7 @@ export const ReleasePlan = ({
|
||||
const { addChange } = useChangeRequestApi();
|
||||
const { refetch: refetchChangeRequests } =
|
||||
usePendingChangeRequests(projectId);
|
||||
const milestoneProgressionsEnabled = useUiFlag('milestoneProgression');
|
||||
|
||||
const onAddRemovePlanChangesConfirm = async () => {
|
||||
await addChange(projectId, environment, {
|
||||
@ -276,7 +314,23 @@ export const ReleasePlan = ({
|
||||
/>
|
||||
<ConditionallyRender
|
||||
condition={index < milestones.length - 1}
|
||||
show={<StyledConnection />}
|
||||
show={
|
||||
<ConditionallyRender
|
||||
condition={milestoneProgressionsEnabled}
|
||||
show={
|
||||
<StyledConnectionContainer>
|
||||
<StyledConnection />
|
||||
<StyledAddAutomationIconButton color='primary'>
|
||||
<Add />
|
||||
</StyledAddAutomationIconButton>
|
||||
<StyledAddAutomationButton color='primary'>
|
||||
Add automation
|
||||
</StyledAddAutomationButton>
|
||||
</StyledConnectionContainer>
|
||||
}
|
||||
elseShow={<StyledConnectionSimple />}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user