From 47752e5e35b0fe88180cbd8d12fd84cee3b0b883 Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Thu, 4 Dec 2025 15:05:01 +0530 Subject: [PATCH] Adding time line in Jobs Status. --- .../ServiceProjectJob/JobStatusLog.jsx | 79 ++++++++----------- .../ServiceProjectJob/ManageJobTicket.jsx | 17 ++-- 2 files changed, 40 insertions(+), 56 deletions(-) diff --git a/src/components/ServiceProject/ServiceProjectJob/JobStatusLog.jsx b/src/components/ServiceProject/ServiceProjectJob/JobStatusLog.jsx index bf13b7e5..f1dfce9a 100644 --- a/src/components/ServiceProject/ServiceProjectJob/JobStatusLog.jsx +++ b/src/components/ServiceProject/ServiceProjectJob/JobStatusLog.jsx @@ -1,55 +1,38 @@ -import React from "react"; -import Avatar from "../../common/Avatar"; -import { formatUTCToLocalTime } from "../../../utils/dateUtils"; - +import React, { useMemo } from "react"; +import Timeline from "../../common/Timeline"; +import { getColorNameFromHex } from "../../../utils/appUtils"; const JobStatusLog = ({ data }) => { + // Prepare timeline items + const timelineData = useMemo(() => { + if (!data) return []; + return data + .sort((a, b) => new Date(b.updatedAt) - new Date(a.updatedAt)) + .map((log) => ({ + id: log.id, + title: log.nextStatus?.displayName || log.status?.displayName || "Status Updated", + description: log.nextStatus?.description || "", + timeAgo: log.updatedAt, + color: getColorNameFromHex(log.nextStatus?.color) || "primary", + userComment: log.comment, + users: log.updatedBy + ? [ + { + firstName: log.updatedBy.firstName || "", + lastName: log.updatedBy.lastName || "", + role: log.updatedBy.jobRoleName || "", + avatar: log.updatedBy.photo || null, + }, + ] + : [], + })); + }, [data]); + return (
-
-
- {data?.map((item) => ( -
-
-
- - {item.nextStatus?.displayName ?? - item.status?.displayName ?? - "Status"} - -
- - - {formatUTCToLocalTime(item?.updatedAt,true)} - -
-
- -
-
- - {item.updatedBy?.firstName} {item.updatedBy?.lastName} - - - {/* {formatUTCToLocalTime(item?.createdAt, true)} */} - -
-
- {item?.updatedBy?.jobRoleName} -
-
-

{item.comment}

-
-
-
-
- ))} +
+
+
diff --git a/src/components/ServiceProject/ServiceProjectJob/ManageJobTicket.jsx b/src/components/ServiceProject/ServiceProjectJob/ManageJobTicket.jsx index d2647649..b05e85fe 100644 --- a/src/components/ServiceProject/ServiceProjectJob/ManageJobTicket.jsx +++ b/src/components/ServiceProject/ServiceProjectJob/ManageJobTicket.jsx @@ -23,20 +23,21 @@ const ManageJobTicket = ({ Job }) => { ); const drawerRef = useRef(); const tabsData = [ + { + id: "history", + title: "History", + icon: "bx bx-time me-2", + active: true, + content: , + }, { id: "comment", title: "Comments", icon: "bx bx-comment me-2", - active: true, + active: false, content: , }, - { - id: "history", - title: "History", - icon: "bx bx-time me-2", - active: false, - content: , - }, + ]; if (isLoading) return ;