mirror of
https://github.com/Unleash/unleash.git
synced 2025-04-01 01:18:10 +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>
|
||||
</ChangeRequestTitle>
|
||||
<StyledInnerContainer>
|
||||
<ChangeRequestStatusBadge state={changeRequest.state} />
|
||||
<ChangeRequestStatusBadge changeRequest={changeRequest} />
|
||||
<Typography
|
||||
variant='body2'
|
||||
sx={(theme) => ({
|
||||
|
@ -103,7 +103,7 @@ export const EnvironmentChangeRequest: FC<{
|
||||
</Box>
|
||||
<Box sx={{ ml: 'auto' }}>
|
||||
<ChangeRequestStatusBadge
|
||||
state={environmentChangeRequest.state}
|
||||
changeRequest={environmentChangeRequest}
|
||||
/>
|
||||
</Box>
|
||||
</Box>
|
||||
|
@ -1,10 +1,16 @@
|
||||
import { VFC } from 'react';
|
||||
import { ChangeRequestState } from '../changeRequest.types';
|
||||
import { IChangeRequest } from '../changeRequest.types';
|
||||
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 {
|
||||
state: ChangeRequestState;
|
||||
changeRequest: IChangeRequest | undefined;
|
||||
}
|
||||
|
||||
const ReviewRequiredBadge: VFC = () => (
|
||||
@ -16,8 +22,12 @@ const ReviewRequiredBadge: VFC = () => (
|
||||
const DraftBadge: VFC = () => <Badge color='warning'>Draft</Badge>;
|
||||
|
||||
export const ChangeRequestStatusBadge: VFC<IChangeRequestStatusBadgeProps> = ({
|
||||
state,
|
||||
changeRequest,
|
||||
}) => {
|
||||
if (!changeRequest) {
|
||||
return null;
|
||||
}
|
||||
const { state } = changeRequest;
|
||||
switch (state) {
|
||||
case 'Draft':
|
||||
return <DraftBadge />;
|
||||
@ -47,12 +57,21 @@ export const ChangeRequestStatusBadge: VFC<IChangeRequestStatusBadgeProps> = ({
|
||||
Rejected
|
||||
</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 (
|
||||
<Badge color='warning' icon={<AccessTime fontSize={'small'} />}>
|
||||
<Badge color={color} icon={icon}>
|
||||
Scheduled
|
||||
</Badge>
|
||||
);
|
||||
}
|
||||
default:
|
||||
return <ReviewRequiredBadge />;
|
||||
}
|
||||
|
@ -1,18 +1,23 @@
|
||||
import { VFC } from 'react';
|
||||
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';
|
||||
|
||||
interface IChangeRequestStatusCellProps {
|
||||
value?: string | null; // FIXME: proper type
|
||||
row: { original: IChangeRequest };
|
||||
}
|
||||
|
||||
export const ChangeRequestStatusCell: VFC<IChangeRequestStatusCellProps> = ({
|
||||
value,
|
||||
row: { original },
|
||||
}) => {
|
||||
const renderState = () => {
|
||||
if (!value) return null;
|
||||
return <ChangeRequestStatusBadge state={value as ChangeRequestState} />;
|
||||
return <ChangeRequestStatusBadge changeRequest={original} />;
|
||||
};
|
||||
|
||||
if (!value) {
|
||||
|
Loading…
Reference in New Issue
Block a user