diff --git a/CHANGELOG.MD b/CHANGELOG.MD
index e34671060..90d5e41c1 100644
--- a/CHANGELOG.MD
+++ b/CHANGELOG.MD
@@ -1,3 +1,6 @@
+## February 02, 2024
+- **Task** Updated Timeline widget icons so that the circles are more consistent. [🎟️DESENG-488](https://apps.itsm.gov.bc.ca/jira/browse/DESENG-488)
+
## February 01, 2024
- **Task** Change name from "Engagement Core" to "Engagement Content". [🎟️DESENG-489](https://apps.itsm.gov.bc.ca/jira/browse/DESENG-489)
diff --git a/met-web/src/components/engagement/view/widgets/Timeline/TimelineWidgetView.tsx b/met-web/src/components/engagement/view/widgets/Timeline/TimelineWidgetView.tsx
index 7ea5e882d..f35acd512 100644
--- a/met-web/src/components/engagement/view/widgets/Timeline/TimelineWidgetView.tsx
+++ b/met-web/src/components/engagement/view/widgets/Timeline/TimelineWidgetView.tsx
@@ -1,11 +1,15 @@
import React, { useEffect, useState } from 'react';
import { MetPaper, MetHeader2, MetParagraph, MetHeader4 } from 'components/common';
-import { Grid, Skeleton, Divider } from '@mui/material';
+import { Avatar, Grid, Skeleton, Divider } from '@mui/material';
import { Widget } from 'models/widget';
import { useAppDispatch } from 'hooks';
import { openNotification } from 'services/notificationService/notificationSlice';
import { TimelineWidget, TimelineEvent } from 'models/timelineWidget';
import { fetchTimelineWidgets } from 'services/widgetService/TimelineService';
+import CheckIcon from '@mui/icons-material/Check';
+import LensRoundedIcon from '@mui/icons-material/LensRounded';
+import { Palette } from 'styles/Theme';
+import { EventStatus } from 'models/timelineWidget';
interface TimelineWidgetProps {
widget: Widget;
@@ -46,52 +50,74 @@ const TimelineWidgetView = ({ widget }: TimelineWidgetProps) => {
fetchTimeline();
}, [widget]);
- const handleRenderTimelineEvent = (tEvent: TimelineEvent, index: number) => {
- const containerStylesObject = {
- minHeight: index + 1 === timelineWidget.events.length ? '60px' : '80px',
- display: 'flex',
- flexDirection: 'row',
- marginLeft: index + 1 === timelineWidget.events.length ? '24px' : '22px',
- borderLeft: index + 1 === timelineWidget.events.length ? 'none' : '2px solid grey',
- };
- const circleContainerStylesObject = {
- padding: '2px',
- border: '2px solid grey',
- marginLeft: '-25px',
- display: 'inline-flex',
- backgroundColor: '#fff',
- borderRadius: '50%',
- height: '48px',
- width: '48px',
- };
- const circleStylesObject = {
- width: '40px',
- height: '40px',
- borderRadius: '50%',
- content: '""',
- border: 1 !== tEvent.status ? '20px solid' : 'none',
- borderColor: 3 === tEvent.status ? '#2e8540' : '#036',
- };
- const checkmarkStylesObject = {
- marginLeft: '-12px',
- marginTop: '-23px',
- fontSize: '31px',
- color: '#fff',
+ const containerStylesObject = (index: number) => ({
+ minHeight: index + 1 === timelineWidget.events.length ? '60px' : '80px',
+ display: 'flex',
+ flexDirection: 'row',
+ alignItems: 'flex-start',
+ marginLeft: index + 1 === timelineWidget.events.length ? '18px' : '16px',
+ borderLeft: index + 1 === timelineWidget.events.length ? 'none' : '2px solid grey',
+ });
+
+ const commonAvatarStyles = {
+ height: 30,
+ width: 30,
+ marginLeft: '-16px',
+ backgroundColor: Palette.info.main,
+ };
+
+ const commonWhiteAvatarStyles = {
+ height: 23,
+ width: 23,
+ backgroundColor: '#FFF',
+ };
+
+ const renderIcon = (status: EventStatus) => {
+ const icons: { [key in EventStatus]: JSX.Element } = {
+ [EventStatus.Pending]: (
+
+
+
+ ),
+ [EventStatus.InProgress]: (
+
+
+
+
+
+ ),
+ [EventStatus.Completed]: (
+
+
+
+
+
+ ),
};
+
+ return icons[status] || null;
+ };
+
+ const handleRenderTimelineEvent = (tEvent: TimelineEvent, index: number) => {
return (
-
-
-
- {3 == tEvent.status && (
-
- ✓
-
- )}
-
+
+
+ {renderIcon(tEvent.status)}
-
+
{tEvent.description}
-
+
{tEvent.time}