diff --git a/src/components/common/FilterIcon.jsx b/src/components/common/FilterIcon.jsx index 0f938e1a..2dc43daa 100644 --- a/src/components/common/FilterIcon.jsx +++ b/src/components/common/FilterIcon.jsx @@ -203,7 +203,7 @@ const FilterIcon = ({ <>

  • -
    Floors
    +
    Floors
    {uniqueFloors.length > 0 ? ( uniqueFloors.map((floor, idx) => ( @@ -235,7 +235,7 @@ const FilterIcon = ({ <>

  • -
    Activities
    +
    Activities
    {uniqueActivities.length > 0 ? ( uniqueActivities.map((activity, idx) => ( diff --git a/src/pages/Activities/DailyTask.jsx b/src/pages/Activities/DailyTask.jsx index fc51f756..ca676647 100644 --- a/src/pages/Activities/DailyTask.jsx +++ b/src/pages/Activities/DailyTask.jsx @@ -1,7 +1,7 @@ import React, { useEffect, useMemo, useState } from "react"; import { useDispatch } from "react-redux"; import { useTaskList } from "../../hooks/useTasks"; -import { useProjectName } from "../../hooks/useProjects"; +import { useProjectAssignedServices, useProjectName } from "../../hooks/useProjects"; import { setProjectId } from "../../slices/localVariablesSlice"; import Breadcrumb from "../../components/common/Breadcrumb"; import DateRangePicker from "../../components/common/DateRangePicker"; @@ -24,6 +24,14 @@ const DailyTask = () => { const ApprovedTaskRights = useHasUserPermission(APPROVE_TASK); const ReportTaskRights = useHasUserPermission(ASSIGN_REPORT_TASK); + const { data: assignedServices, isLoading: servicesLoading } = useProjectAssignedServices(selectedProject); + + const [selectedService, setSelectedService] = useState(""); + + const handleServiceChange = (e) => { + setSelectedService(e.target.value); + }; + const [filters, setFilters] = useState({ selectedBuilding: "", selectedFloors: [], @@ -38,7 +46,6 @@ const DailyTask = () => { dateRange?.endDate || null ); - // Ensure project is set useEffect(() => { if (!selectedProject && projectNames.length > 0) { debugger @@ -46,7 +53,6 @@ const DailyTask = () => { } }, [selectedProject, projectNames, dispatch]); - // 🔹 Reset filters when project changes useEffect(() => { setFilters({ selectedBuilding: "", @@ -55,7 +61,6 @@ const DailyTask = () => { }); }, [selectedProject]); - // Memoized filtering const filteredTasks = useMemo(() => { if (!TaskList) return []; return TaskList.filter((task) => { @@ -69,7 +74,6 @@ const DailyTask = () => { }); }, [TaskList, filters]); - // Memoized dates const groupedTasks = useMemo(() => { const groups = {}; filteredTasks.forEach((task) => { @@ -82,13 +86,11 @@ const DailyTask = () => { .map((date) => ({ date, tasks: groups[date] })); }, [filteredTasks]); - // --- Modal State const [modal, setModal] = useState({ type: null, data: null }); const openModal = (type, data = null) => setModal({ type, data }); const closeModal = () => setModal({ type: null, data: null }); - // --- Render helpers const renderTeamMembers = (task, refIndex) => (
    { return ( <> - {/* --- Modals --- */} {modal.type === "report" && ( @@ -161,22 +162,71 @@ const DailyTask = () => {
    -
    +
    {!selectedProject && (
    Please Select Project
    )} - {/* --- Filters --- */} -
    - - -
    +
    + + {/* --- Left: Service Dropdown + Filter Icon --- */} +
    +
    + {servicesLoading ? ( + + ) : assignedServices?.length > 1 ? ( + + ) : ( +
    + {assignedServices?.length === 1 + ?
    {assignedServices[0].name}
    + : "No service available"} +
    + )} +
    + + {/* */} +
    + + {/* --- Right: DateRangePicker --- */} +
    + + +
    + +
    {/* --- Table --- */}
    @@ -248,4 +298,4 @@ const DailyTask = () => { ); }; -export default DailyTask; +export default DailyTask; \ No newline at end of file