Compare commits
No commits in common. "b39a3d7e97ba5a08112396a958c907588a81fad2" and "e6d6f0ac3004d9cf543743de27fed3e39db55d94" have entirely different histories.
b39a3d7e97
...
e6d6f0ac30
@ -8,11 +8,16 @@ import { TasksRepository } from "../../repositories/TaskRepository";
|
|||||||
import { useReportTask } from "../../hooks/useTasks";
|
import { useReportTask } from "../../hooks/useTasks";
|
||||||
|
|
||||||
export const ReportTask = ({ report, closeModal }) => {
|
export const ReportTask = ({ report, closeModal }) => {
|
||||||
|
const [loading, setloading] = useState(false);
|
||||||
const { mutate: reportTask, isPending } = useReportTask({
|
const { mutate: reportTask, isPending } = useReportTask({
|
||||||
onSuccessCallback: () => {
|
onSuccessCallback: () => {
|
||||||
reset();
|
reset();
|
||||||
|
setloading(false);
|
||||||
closeModal();
|
closeModal();
|
||||||
},
|
},
|
||||||
|
onErrorCallback: () => {
|
||||||
|
setloading(false);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const maxPending =
|
const maxPending =
|
||||||
@ -54,7 +59,7 @@ export const ReportTask = ({ report, closeModal }) => {
|
|||||||
}, [report, reset]);
|
}, [report, reset]);
|
||||||
|
|
||||||
const onSubmit = (data) => {
|
const onSubmit = (data) => {
|
||||||
|
setloading(true);
|
||||||
const reportData = {
|
const reportData = {
|
||||||
...data,
|
...data,
|
||||||
id: report?.id,
|
id: report?.id,
|
||||||
@ -181,14 +186,13 @@ export const ReportTask = ({ report, closeModal }) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="col-12 text-center my-2">
|
<div className="col-12 text-center my-2">
|
||||||
<button type="submit" className="btn btn-sm btn-primary me-3" disabled={isPending}>
|
<button type="submit" className="btn btn-sm btn-primary me-3">
|
||||||
{isPending ? "Please wait" : "Submit Report"}
|
{loading ? "Please wait" : "Submit Report"}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
className="btn btn-sm btn-label-secondary"
|
className="btn btn-sm btn-label-secondary"
|
||||||
onClick={handleClose}
|
onClick={handleClose}
|
||||||
disabled={isPending}
|
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@ -99,6 +99,63 @@ const ReportTaskComments = ({
|
|||||||
}
|
}
|
||||||
}, [comments]);
|
}, [comments]);
|
||||||
|
|
||||||
|
// const onSubmit = async (data) => {
|
||||||
|
// let payload = {
|
||||||
|
// ...data,
|
||||||
|
// [actionAllow ? "id" : "taskAllocationId"]: commentsData?.id,
|
||||||
|
// ...(actionAllow ? {} : { commentDate: new Date().toISOString() }),
|
||||||
|
// };
|
||||||
|
|
||||||
|
// try {
|
||||||
|
// setloading(true);
|
||||||
|
// const resp = actionAllow
|
||||||
|
// ? await TasksRepository.auditTask(payload)
|
||||||
|
// : await TasksRepository.taskComments(payload);
|
||||||
|
|
||||||
|
// setComment((prevItems) => [...prevItems, resp.data]);
|
||||||
|
|
||||||
|
// const taskList = getCachedData("taskList");
|
||||||
|
|
||||||
|
// if (actionAllow) {
|
||||||
|
// handleCloseAction(IsNeededSubTask);
|
||||||
|
// showToast(
|
||||||
|
// "Review submitted successfully. Record has been updated.",
|
||||||
|
// "success"
|
||||||
|
// );
|
||||||
|
// } else {
|
||||||
|
// if (taskList && taskList.data) {
|
||||||
|
// const updatedTaskList = taskList.data.map((task) => {
|
||||||
|
// if (task.id === resp.data.taskAllocationId) {
|
||||||
|
// const existingComments = Array.isArray(task.comments)
|
||||||
|
// ? task.comments
|
||||||
|
// : [];
|
||||||
|
// return {
|
||||||
|
// ...task,
|
||||||
|
// comments: [...existingComments, resp.data],
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// return task;
|
||||||
|
// });
|
||||||
|
|
||||||
|
// cacheData("taskList", {
|
||||||
|
// data: updatedTaskList,
|
||||||
|
// projectId: taskList.projectId,
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// showToast("Successfully Sent", "success");
|
||||||
|
// }
|
||||||
|
|
||||||
|
// reset();
|
||||||
|
// setloading(false);
|
||||||
|
// } catch (error) {
|
||||||
|
// setloading(false);
|
||||||
|
// showToast(
|
||||||
|
// error.response.data?.message || "Something went wrong",
|
||||||
|
// "error"
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
|
||||||
const onSubmit = (formData) => {
|
const onSubmit = (formData) => {
|
||||||
submitComment({ data: formData, commentsData });
|
submitComment({ data: formData, commentsData });
|
||||||
};
|
};
|
||||||
@ -364,16 +421,15 @@ const ReportTaskComments = ({
|
|||||||
className="btn btn-sm btn-secondary"
|
className="btn btn-sm btn-secondary"
|
||||||
onClick={closeModal}
|
onClick={closeModal}
|
||||||
data-bs-dismiss="modal"
|
data-bs-dismiss="modal"
|
||||||
disabled={isPending}
|
|
||||||
>
|
>
|
||||||
Close
|
Close
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
className="btn btn-sm btn-primary ms-2"
|
className="btn btn-sm btn-primary ms-2"
|
||||||
disabled={isPending}
|
disabled={loading}
|
||||||
>
|
>
|
||||||
{isPending
|
{loading
|
||||||
? actionAllow
|
? actionAllow
|
||||||
? "Please Wait..."
|
? "Please Wait..."
|
||||||
: "Send..."
|
: "Send..."
|
||||||
|
|||||||
@ -9,7 +9,6 @@ import {
|
|||||||
import showToast from "../../services/toastService";
|
import showToast from "../../services/toastService";
|
||||||
import ProjectRepository from "../../repositories/ProjectRepository";
|
import ProjectRepository from "../../repositories/ProjectRepository";
|
||||||
import { useTaskById } from "../../hooks/useTasks";
|
import { useTaskById } from "../../hooks/useTasks";
|
||||||
import {useManageTask} from "../../hooks/useProjects";
|
|
||||||
|
|
||||||
const subTaskSchema = z.object({
|
const subTaskSchema = z.object({
|
||||||
activityId: z.string().min(1, "Activity is required"),
|
activityId: z.string().min(1, "Activity is required"),
|
||||||
@ -24,6 +23,7 @@ const SubTask = ({ activity, onClose }) => {
|
|||||||
const [categoryData, setCategoryData] = useState([]);
|
const [categoryData, setCategoryData] = useState([]);
|
||||||
const { activities, loading } = useActivitiesMaster();
|
const { activities, loading } = useActivitiesMaster();
|
||||||
const { categories, categoryLoading } = useWorkCategoriesMaster();
|
const { categories, categoryLoading } = useWorkCategoriesMaster();
|
||||||
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||||
const { Task, loading: TaskLoading } = useTaskById(activity?.id);
|
const { Task, loading: TaskLoading } = useTaskById(activity?.id);
|
||||||
const {
|
const {
|
||||||
register,
|
register,
|
||||||
@ -37,19 +37,13 @@ const SubTask = ({ activity, onClose }) => {
|
|||||||
});
|
});
|
||||||
const selectedActivityId = watch("activityId");
|
const selectedActivityId = watch("activityId");
|
||||||
const selectedActivity = activities?.find((a) => a.id === selectedActivityId);
|
const selectedActivity = activities?.find((a) => a.id === selectedActivityId);
|
||||||
const {mutate:createSubTask,isPending } = useManageTask( {
|
|
||||||
onSuccessCallback: () =>
|
|
||||||
{
|
|
||||||
showToast("Sub Task Created Successfully","success")
|
|
||||||
reset();
|
|
||||||
onClose();
|
|
||||||
}
|
|
||||||
} )
|
|
||||||
|
|
||||||
|
// Set categories when fetched
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setCategoryData(categories);
|
setCategoryData(categories);
|
||||||
}, [categories]);
|
}, [categories]);
|
||||||
|
|
||||||
|
// Set initial values from activity
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!TaskLoading && (Task?.workItem || activity)) {
|
if (!TaskLoading && (Task?.workItem || activity)) {
|
||||||
reset({
|
reset({
|
||||||
@ -82,8 +76,22 @@ const SubTask = ({ activity, onClose }) => {
|
|||||||
parentTaskId: activity?.id,
|
parentTaskId: activity?.id,
|
||||||
comment: formData.comment,
|
comment: formData.comment,
|
||||||
};
|
};
|
||||||
|
setIsSubmitting(true);
|
||||||
createSubTask([payload])
|
|
||||||
|
try {
|
||||||
|
await ProjectRepository.manageProjectTasks([payload]);
|
||||||
|
showToast("SubTask Created Successfully", "success");
|
||||||
|
setIsSubmitting(false);
|
||||||
|
reset();
|
||||||
|
onClose();
|
||||||
|
} catch (error) {
|
||||||
|
setIsSubmitting(false);
|
||||||
|
const msg =
|
||||||
|
error.response.message ||
|
||||||
|
error.message ||
|
||||||
|
"Error occured during API calling";
|
||||||
|
showToast(msg, "error");
|
||||||
|
}
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<div className="container-xxl my-1">
|
<div className="container-xxl my-1">
|
||||||
@ -213,15 +221,15 @@ const SubTask = ({ activity, onClose }) => {
|
|||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
className="btn btn-sm btn-primary me-2"
|
className="btn btn-sm btn-primary me-2"
|
||||||
disabled={isPending}
|
disabled={isSubmitting}
|
||||||
>
|
>
|
||||||
{isPending ? "Please wait..." : "Submit"}
|
{isSubmitting ? "Please wait..." : "Submit"}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
className="btn btn-sm btn-secondary"
|
className="btn btn-sm btn-secondary"
|
||||||
onClick={() => onClose()}
|
onClick={() => onClose()}
|
||||||
disabled={isPending}
|
disabled={isSubmitting}
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@ -58,10 +58,7 @@ const EditActivityModal = ({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
const { mutate: UpdateTask, isPending } = useManageTask({
|
const { mutate: UpdateTask, isPending } = useManageTask({
|
||||||
onSuccessCallback: (response) =>
|
onSuccessCallback: () => onClose?.()
|
||||||
{
|
|
||||||
showToast(response?.message,"success")
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const activityID = watch("activityID");
|
const activityID = watch("activityID");
|
||||||
|
|||||||
@ -47,7 +47,7 @@ const FloorModel = ({ project, onClose, onSubmit }) => {
|
|||||||
: "Floor created Successfully",
|
: "Floor created Successfully",
|
||||||
"success"
|
"success"
|
||||||
);
|
);
|
||||||
reset({ id: "0", floorName: ""});
|
reset({ Id: "0", name: "", description: "" });
|
||||||
// onClose?.();
|
// onClose?.();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import {
|
|||||||
useWorkCategoriesMaster,
|
useWorkCategoriesMaster,
|
||||||
} from "../../../hooks/masterHook/useMaster";
|
} from "../../../hooks/masterHook/useMaster";
|
||||||
import { useManageTask } from "../../../hooks/useProjects";
|
import { useManageTask } from "../../../hooks/useProjects";
|
||||||
import showToast from "../../../services/toastService";
|
|
||||||
|
|
||||||
const taskSchema = z.object({
|
const taskSchema = z.object({
|
||||||
buildingID: z.string().min(1, "Building is required"),
|
buildingID: z.string().min(1, "Building is required"),
|
||||||
@ -69,11 +68,7 @@ const TaskModel = ({ project, onSubmit, onClose }) => {
|
|||||||
const selectedCategory = categoryData?.find((c) => c.id === watchCategoryId);
|
const selectedCategory = categoryData?.find((c) => c.id === watchCategoryId);
|
||||||
|
|
||||||
const { mutate: CreateTask, isPending } = useManageTask({
|
const { mutate: CreateTask, isPending } = useManageTask({
|
||||||
onSuccessCallback: ( response ) =>
|
onSuccessCallback: () => onClose?.(),
|
||||||
{
|
|
||||||
showToast( response?.message, "success" )
|
|
||||||
onClose?.()
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
reset(defaultModel);
|
reset(defaultModel);
|
||||||
|
|||||||
@ -499,6 +499,14 @@ export const useManageTask = ({onSuccessCallback}) =>
|
|||||||
mutationFn: async ( payload ) => await ProjectRepository.manageProjectTasks( payload ),
|
mutationFn: async ( payload ) => await ProjectRepository.manageProjectTasks( payload ),
|
||||||
onSuccess: ( data, variables ) =>
|
onSuccess: ( data, variables ) =>
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if ( variables[ 0 ]?.id )
|
||||||
|
{
|
||||||
|
showToast( 'Activity Updated Successfully', 'success' );
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
showToast( 'Activity Created Successfully', 'success' );
|
||||||
|
}
|
||||||
queryClient.invalidateQueries(["WorkItems"])
|
queryClient.invalidateQueries(["WorkItems"])
|
||||||
if (onSuccessCallback) onSuccessCallback(data);
|
if (onSuccessCallback) onSuccessCallback(data);
|
||||||
},
|
},
|
||||||
|
|||||||
@ -115,6 +115,7 @@ export const useReportTask = ( {onSuccessCallback, onErrorCallback} = {} ) =>
|
|||||||
const msg =
|
const msg =
|
||||||
error?.response?.data?.message || error.message || "Error occurred during API call";
|
error?.response?.data?.message || error.message || "Error occurred during API call";
|
||||||
showToast( msg, "error" );
|
showToast( msg, "error" );
|
||||||
|
if (onErrorCallback) onErrorCallback(error);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -152,6 +153,7 @@ export const useSubmitTaskComment = ({ actionAllow, onSuccessCallback }) => {
|
|||||||
if (actionAllow) {
|
if (actionAllow) {
|
||||||
showToast( "Review submitted successfully.", "success" );
|
showToast( "Review submitted successfully.", "success" );
|
||||||
|
|
||||||
|
// queryClient.invalidateQueries({ queryKey: [ "WorkItems", workAreaId ] });
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
showToast("Comment sent successfully.", "success");
|
showToast("Comment sent successfully.", "success");
|
||||||
@ -179,7 +181,7 @@ export const useCreateTask = ( {onSuccessCallback, onErrorCallback} = {} ) =>
|
|||||||
onSuccess: ( _, variables ) =>
|
onSuccess: ( _, variables ) =>
|
||||||
{
|
{
|
||||||
queryClient.invalidateQueries(["taskList"]);
|
queryClient.invalidateQueries(["taskList"]);
|
||||||
showToast( "Task Assigned Successfully.", "success" );
|
showToast("Task Assigned Successfully.", "success");
|
||||||
if (onSuccessCallback) onSuccessCallback(variables);
|
if (onSuccessCallback) onSuccessCallback(variables);
|
||||||
},
|
},
|
||||||
onError: ( error ) =>
|
onError: ( error ) =>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user