diff --git a/src/index.css b/src/index.css
index 96f19f7b..21f8a532 100644
--- a/src/index.css
+++ b/src/index.css
@@ -130,3 +130,11 @@ button:focus-visible {
.spin {
animation: spin 1s linear infinite;
}
+.popover-body {
+ padding: 0 !important;
+}
+.custom-popover{
+ max-height: 100px;
+ overflow: auto;
+
+}
\ No newline at end of file
diff --git a/src/pages/Activities/DailyTask.jsx b/src/pages/Activities/DailyTask.jsx
index e220a6d0..9345ef4b 100644
--- a/src/pages/Activities/DailyTask.jsx
+++ b/src/pages/Activities/DailyTask.jsx
@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from "react";
+import React, { useEffect, useState, useRef } from "react";
import { useDispatch, useSelector } from "react-redux";
import Breadcrumb from "../../components/common/Breadcrumb";
import { dailyTask } from "../../data/masters";
@@ -38,6 +38,7 @@ const DailyTask = () => {
setInitialized(true);
}
+
}, [project_lodaing, projects, projectId, selectedProject, initialized]);
const dispatch = useDispatch(selectedProject);
@@ -55,11 +56,22 @@ const DailyTask = () => {
);
const [TaskLists, setTaskLists] = useState([]);
+ const [dates, setDates] = useState([]);
+ const popoverRefs = useRef([]);
useEffect(() => {
setTaskLists(TaskList);
}, [TaskList, selectedProject]);
+ useEffect(() => {
+ const AssignmentDates = [
+ ...new Set(TaskLists.map((task) => task.assignmentDate.split("T")[0])),
+ ].sort((a, b) => new Date(b) - new Date(a));
+ setDates(AssignmentDates);
+
+
+ }, [TaskLists]);
+
const [selectedTask, selectTask] = useState(null);
const [comments, setComment] = useState(null);
@@ -75,6 +87,21 @@ const DailyTask = () => {
selectTask(task);
openModal();
};
+
+ useEffect(() => {
+ popoverRefs.current.forEach((el) => {
+ console.log(el)
+ if (el) {
+ new bootstrap.Popover(el, {
+ trigger: "focus",
+ placement: "left",
+ html: true,
+ content: el.getAttribute("data-bs-content"), // use inline content from attribute
+ });
+ }
+ });
+ }, [dates]);
+
return (
<>
{
)}
- {project_lodaing &&
- |
- Loading...
- |
-
}
- {TaskLists?.length === 0 && !task_loading && !project_lodaing &&(
-
- |
- No Task Found
- |
-
- )}
-
- {TaskLists.map((task, index) => {
+ {dates.map((date, i) => {
return (
-
+
- |
-
- {task.workItem.activityMaster.activityName ||
- "No Activity Name"}
-
-
- {" "}
-
-
- |
-
- {task.plannedTask || "NA"} /
- {task.workItem.plannedWork -
- task.workItem.completedWork}
- |
- {task.completedTask} |
- {formatDate(task.assignmentDate)} |
-
-
- {task.teamMembers.slice(0, 3).map((member) => (
-
- {/*  */}
-
- {member?.firstName.slice(0, 1)}
-
-
- ))}
- {task.teamMembers.length > 3 && (
-
-
- +{task.teamMembers.length - 3}
-
-
- )}
-
- |
-
-
-
-
-
+ |
+ {date}
|
+ {TaskLists.filter((task) =>
+ task.assignmentDate.includes(date)
+ ).map((task, index) => {
+ const refIndex = index * 10 + i;
+ console.log(refIndex)
+ return (
+
+
+ |
+
+ {task.workItem.activityMaster
+ .activityName || "No Activity Name"}
+
+
+ {" "}
+
+
+ |
+
+ {task.plannedTask || "NA"} /
+ {task.workItem.plannedWork -
+ task.workItem.completedWork}
+ |
+ {task.completedTask} |
+ {formatDate(task.assignmentDate)} |
+
+
+ (popoverRefs.current[refIndex] = el)
+ }
+ tabIndex="0"
+ className="d-flex align-items-center avatar-group justify-content-center"
+ data-bs-toggle="popover"
+ data-bs-trigger="focus"
+ data-bs-placement="left"
+ data-bs-html="true"
+ data-bs-content={`
+
+ ${task.teamMembers
+ .map(
+ (member) => `
+
+
+
+ ${member?.firstName?.charAt(0) || ""}${member?.lastName?.charAt(0) || ""}
+
+
+ ${member.firstName} ${member.lastName}
+
+ `
+ )
+ .join('')}
+
+ `}
+ >
+ {task.teamMembers
+ .slice(0, 3)
+ .map((member) => (
+
+ {/*  */}
+
+ {member?.firstName.slice(0, 1)}
+
+
+ ))}
+ {task.teamMembers.length > 3 && (
+
+
+ +{task.teamMembers.length - 3}
+
+
+ )}
+
+ |
+
+
+
+
+
+ |
+
+
+ );
+ })}
);
})}