diff --git a/frontend/src/component/changeRequest/ChangeRequestStatusBadge/ChangeRequestStatusBadge.tsx b/frontend/src/component/changeRequest/ChangeRequestStatusBadge/ChangeRequestStatusBadge.tsx index 977ddc9d15..dc41a0a2c8 100644 --- a/frontend/src/component/changeRequest/ChangeRequestStatusBadge/ChangeRequestStatusBadge.tsx +++ b/frontend/src/component/changeRequest/ChangeRequestStatusBadge/ChangeRequestStatusBadge.tsx @@ -7,6 +7,7 @@ import { CircleOutlined, Close, Error as ErrorIcon, + PauseCircle, } from '@mui/icons-material'; import { HtmlTooltip } from 'component/common/HtmlTooltip/HtmlTooltip'; @@ -60,23 +61,39 @@ export const ChangeRequestStatusBadge: VFC = ({ ); case 'Scheduled': { const { schedule } = changeRequest; - const color = schedule!.status === 'pending' ? 'warning' : 'error'; - const icon = - schedule?.status === 'pending' ? ( - - ) : ( - - ); const scheduledAt = new Date( schedule!.scheduledAt, ).toLocaleString(); - const tooltipTitle = - schedule?.status === 'pending' - ? `Scheduled for ${scheduledAt}` - : `Failed on ${scheduledAt} because of ${ - schedule!.failureReason - }`; + const { color, icon, tooltipTitle } = (() => { + switch (schedule!.status) { + case 'pending': + return { + color: 'warning' as const, + icon: , + tooltipTitle: `Scheduled for ${scheduledAt}`, + }; + case 'failed': + return { + color: 'error' as const, + icon: , + tooltipTitle: `Failed on ${scheduledAt} because of ${ + // @ts-ignore + schedule!.reason ?? schedule!.failureReason + }`, + }; + // @ts-ignore + case 'suspended': + return { + color: 'disabled' as const, + icon: , + tooltipTitle: `Suspended because: ${ + // @ts-ignore + schedule!.reason + }`, + }; + } + })(); return (