mirror of
https://github.com/Unleash/unleash.git
synced 2025-06-04 01:18:20 +02:00
Feat: show status of scheduled change request (#5630)
Modifies the ChangeRequestStatusBadge to display the failed execution Closes # [1-1767](https://linear.app/unleash/issue/1-1767/add-status-to-scheduled-badge)   --------- Signed-off-by: andreas-unleash <andreas@getunleash.ai>
This commit is contained in:
parent
176e22ed40
commit
cbd50ac0f5
@ -31,7 +31,7 @@ export const ChangeRequestHeader: FC<{ changeRequest: IChangeRequest }> = ({
|
|||||||
</StyledHeader>
|
</StyledHeader>
|
||||||
</ChangeRequestTitle>
|
</ChangeRequestTitle>
|
||||||
<StyledInnerContainer>
|
<StyledInnerContainer>
|
||||||
<ChangeRequestStatusBadge state={changeRequest.state} />
|
<ChangeRequestStatusBadge changeRequest={changeRequest} />
|
||||||
<Typography
|
<Typography
|
||||||
variant='body2'
|
variant='body2'
|
||||||
sx={(theme) => ({
|
sx={(theme) => ({
|
||||||
|
@ -103,7 +103,7 @@ export const EnvironmentChangeRequest: FC<{
|
|||||||
</Box>
|
</Box>
|
||||||
<Box sx={{ ml: 'auto' }}>
|
<Box sx={{ ml: 'auto' }}>
|
||||||
<ChangeRequestStatusBadge
|
<ChangeRequestStatusBadge
|
||||||
state={environmentChangeRequest.state}
|
changeRequest={environmentChangeRequest}
|
||||||
/>
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
|
@ -1,10 +1,16 @@
|
|||||||
import { VFC } from 'react';
|
import { VFC } from 'react';
|
||||||
import { ChangeRequestState } from '../changeRequest.types';
|
import { IChangeRequest } from '../changeRequest.types';
|
||||||
import { Badge } from 'component/common/Badge/Badge';
|
import { Badge } from 'component/common/Badge/Badge';
|
||||||
import { AccessTime, Check, CircleOutlined, Close } from '@mui/icons-material';
|
import {
|
||||||
|
AccessTime,
|
||||||
|
Check,
|
||||||
|
CircleOutlined,
|
||||||
|
Close,
|
||||||
|
Info,
|
||||||
|
} from '@mui/icons-material';
|
||||||
|
|
||||||
interface IChangeRequestStatusBadgeProps {
|
interface IChangeRequestStatusBadgeProps {
|
||||||
state: ChangeRequestState;
|
changeRequest: IChangeRequest | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ReviewRequiredBadge: VFC = () => (
|
const ReviewRequiredBadge: VFC = () => (
|
||||||
@ -16,8 +22,12 @@ const ReviewRequiredBadge: VFC = () => (
|
|||||||
const DraftBadge: VFC = () => <Badge color='warning'>Draft</Badge>;
|
const DraftBadge: VFC = () => <Badge color='warning'>Draft</Badge>;
|
||||||
|
|
||||||
export const ChangeRequestStatusBadge: VFC<IChangeRequestStatusBadgeProps> = ({
|
export const ChangeRequestStatusBadge: VFC<IChangeRequestStatusBadgeProps> = ({
|
||||||
state,
|
changeRequest,
|
||||||
}) => {
|
}) => {
|
||||||
|
if (!changeRequest) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const { state } = changeRequest;
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case 'Draft':
|
case 'Draft':
|
||||||
return <DraftBadge />;
|
return <DraftBadge />;
|
||||||
@ -47,12 +57,21 @@ export const ChangeRequestStatusBadge: VFC<IChangeRequestStatusBadgeProps> = ({
|
|||||||
Rejected
|
Rejected
|
||||||
</Badge>
|
</Badge>
|
||||||
);
|
);
|
||||||
case 'Scheduled':
|
case 'Scheduled': {
|
||||||
|
const { schedule } = changeRequest;
|
||||||
|
const color = schedule?.status === 'pending' ? 'warning' : 'error';
|
||||||
|
const icon =
|
||||||
|
schedule?.status === 'pending' ? (
|
||||||
|
<AccessTime fontSize={'small'} />
|
||||||
|
) : (
|
||||||
|
<Info fontSize={'small'} />
|
||||||
|
);
|
||||||
return (
|
return (
|
||||||
<Badge color='warning' icon={<AccessTime fontSize={'small'} />}>
|
<Badge color={color} icon={icon}>
|
||||||
Scheduled
|
Scheduled
|
||||||
</Badge>
|
</Badge>
|
||||||
);
|
);
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return <ReviewRequiredBadge />;
|
return <ReviewRequiredBadge />;
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,23 @@
|
|||||||
import { VFC } from 'react';
|
import { VFC } from 'react';
|
||||||
import { TextCell } from 'component/common/Table/cells/TextCell/TextCell';
|
import { TextCell } from 'component/common/Table/cells/TextCell/TextCell';
|
||||||
import { ChangeRequestState } from 'component/changeRequest/changeRequest.types';
|
import {
|
||||||
|
ChangeRequestState,
|
||||||
|
IChangeRequest,
|
||||||
|
} from 'component/changeRequest/changeRequest.types';
|
||||||
import { ChangeRequestStatusBadge } from 'component/changeRequest/ChangeRequestStatusBadge/ChangeRequestStatusBadge';
|
import { ChangeRequestStatusBadge } from 'component/changeRequest/ChangeRequestStatusBadge/ChangeRequestStatusBadge';
|
||||||
|
|
||||||
interface IChangeRequestStatusCellProps {
|
interface IChangeRequestStatusCellProps {
|
||||||
value?: string | null; // FIXME: proper type
|
value?: string | null; // FIXME: proper type
|
||||||
|
row: { original: IChangeRequest };
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ChangeRequestStatusCell: VFC<IChangeRequestStatusCellProps> = ({
|
export const ChangeRequestStatusCell: VFC<IChangeRequestStatusCellProps> = ({
|
||||||
value,
|
value,
|
||||||
|
row: { original },
|
||||||
}) => {
|
}) => {
|
||||||
const renderState = () => {
|
const renderState = () => {
|
||||||
if (!value) return null;
|
if (!value) return null;
|
||||||
return <ChangeRequestStatusBadge state={value as ChangeRequestState} />;
|
return <ChangeRequestStatusBadge changeRequest={original} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!value) {
|
if (!value) {
|
||||||
|
Loading…
Reference in New Issue
Block a user