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}