From d48c6fd7e36c8f291cc30de7cbae373c5ec86908 Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Tue, 6 May 2025 23:13:55 +0530 Subject: [PATCH] added activity icons, location coulms. if click on location it move on google map --- src/components/Activities/AttendLogs.jsx | 167 ++++++++++++++++------- 1 file changed, 121 insertions(+), 46 deletions(-) diff --git a/src/components/Activities/AttendLogs.jsx b/src/components/Activities/AttendLogs.jsx index 85424943..ec64f5d1 100644 --- a/src/components/Activities/AttendLogs.jsx +++ b/src/components/Activities/AttendLogs.jsx @@ -1,80 +1,155 @@ -import React, { useEffect, useState } from 'react' -import { useEmployeeAttendacesLog } from '../../hooks/useAttendance'; -import { convertShortTime } from '../../utils/dateUtils'; - +import React, { useEffect, useState } from "react"; +import { useEmployeeAttendacesLog } from "../../hooks/useAttendance"; +import { convertShortTime } from "../../utils/dateUtils"; +import { useNavigate } from "react-router-dom"; const AttendLogs = ({ Id }) => { - - const {logs, loading} = useEmployeeAttendacesLog( Id ) + const { logs, loading } = useEmployeeAttendacesLog(Id); + const navigate = useNavigate(); - const whichActivityPerform = ( actvity ) => - { + const whichActivityPerform = (actvity) => { switch (actvity) { case 1: - return "IN" + return ( + + ); break; - case 2: - return "Requested" + case 2: + return ( + + ); break; - case 3: - return "Deleted" + case 3: + return ( + + ); break; - case 4: - return "OUT" + case 4: + return ( + + ); + break; - case 5: - return "Regularized" - break; - + case 5: + return ( + + ); + break; + default: break; } - } - + }; + const LocationLink = (lat, lng) => { + const url = `https://www.google.com/maps?q=${lat},${lng}`; + window.open(url, "_blank"); // Open in new tab + }; + useEffect(() => { + const tooltipTriggerList = Array.from( + document.querySelectorAll('[data-bs-toggle="tooltip"]') + ); + tooltipTriggerList.forEach((el) => new bootstrap.Tooltip(el)); + }, []); return (
- {loading &&

Loading..

} - { logs && logs.length > 0 && ( - <> -
-
-

Date : {logs[0].activityTime.slice(0,10)}

-
+
+ {logs && !loading && ( +

+ Attendance for{" "} + {logs[0]?.employee?.firstName + " " + logs[0]?.employee?.lastName}{" "} + on {logs[0]?.activityTime.slice(0, 10)}{" "} +

+ )}
+ {loading &&

Loading..

} + {logs && logs.length > 0 && ( + <> +
+
+
- - - - - - - - - - +
TimeActivityDateDescription
+ + + + + + + + + + {logs .slice() .sort((a, b) => b.id - a.id) .map((log, index) => ( - - + + + ))} -
DateTimeActivityLocationDescription
{convertShortTime( log.activityTime )}{whichActivityPerform(log.activity)} {log.activityTime.slice(0, 10)}{convertShortTime(log.activityTime)}{whichActivityPerform(log.activity)} + {log?.latitude != 0 ? ( + + LocationLink(log?.latitude, log?.longitude) + } + > + ) : ( + "--" + )} + {log?.comment}
+ - ) - } - + )}
); }; export default AttendLogs; - -