import React, { createContext, useContext, useEffect, useRef, useState } from "react"; import Breadcrumb from "../../components/common/Breadcrumb"; import { useServices } from "../../hooks/masterHook/useMaster"; import TaskReportList from "../../components/DailyProgressRport/TaskReportList"; import GlobalModel from "../../components/common/GlobalModel"; import ReportTaskComments from "../../components/Activities/ReportTaskComments"; import ReportTask from "../../components/Activities/ReportTask"; import TaskReportFilterPanel from "../../components/DailyProgressRport/TaskReportFilterPanel"; import { useFab } from "../../Context/FabContext"; import SubTask from "../../components/Activities/SubTask"; import { useProjectAssignedServices } from "../../hooks/useProjects"; import { useSelectedProject } from "../../slices/apiDataManager"; import SelectField from "../../components/common/Forms/SelectField"; import { AppFormController } from "../../hooks/appHooks/useAppForm"; import { useForm } from "react-hook-form"; import { TaskReportDefaultValue } from "../../components/DailyProgressRport/TaskRportScheam"; const DailyProgrssContext = createContext(); export const useDailyProgrssContext = () => { const context = useContext(DailyProgrssContext); if (!context) { throw new Error( "useDailyTaskContext must be used within a DailyTaskProvider" ); } return context; }; const DailyProgrssReport = () => { const selectedProject = useSelectedProject() const [service, setService] = useState(""); const [filter, setFilter] = useState('') const { setOffcanvasContent, setShowTrigger } = useFab(); const updatedRef = useRef(); const { data, isLoading, isError, error } = useProjectAssignedServices(selectedProject); const [filterData, setFilterdata] = useState(null); const [modal, setModal] = useState({ type: null, data: null }); const openModal = (type, data = null) => setModal({ type, data }); const closeModal = () => setModal({ type: null, data: null }); const contextDispatcher = { service, openModal, closeModal, filter, }; const { control } = useForm({ defaultValues: { serviceFilter: "" } }); const clearFilter = () => { updatedRef.current?.onClear(); }; const handleFilter = (filterObj) => { setFilter(filterObj) } useEffect(() => { setShowTrigger(true); setOffcanvasContent("Report Filter", ); return () => { setShowTrigger(false); setOffcanvasContent("", null); }; }, []); const handleRemoveChip = (key, id) => { setFilter((prev) => { const updated = { ...prev }; if (Array.isArray(updated[key])) { updated[key] = updated[key].filter((v) => v !== id); setTimeout(() => updatedRef.current?.resetFieldValue(key, updated[key]), 0); } else { updated[key] = null; setTimeout(() => updatedRef.current?.resetFieldValue(key, null), 0); } return updated; }); }; return (
{modal.type === "report" && ( )} {modal.type === "comments" && ( { if (isSubTask) openModal("subtask", modal.data.task); else closeModal(); }} closeModal={closeModal} /> )} {modal.type === "subtask" && ( )}
{data?.length > 0 && (
( { field.onChange(val); setService(val); }} className="m-0" /> )} />
)}
); }; export default DailyProgrssReport;