fixed: visible sub task without refresh page
This commit is contained in:
parent
094811a8ec
commit
b39a3d7e97
@ -8,16 +8,11 @@ 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 =
|
||||||
@ -59,7 +54,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,
|
||||||
@ -186,13 +181,14 @@ 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">
|
<button type="submit" className="btn btn-sm btn-primary me-3" disabled={isPending}>
|
||||||
{loading ? "Please wait" : "Submit Report"}
|
{isPending ? "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,63 +99,6 @@ 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 });
|
||||||
};
|
};
|
||||||
@ -421,15 +364,16 @@ 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={loading}
|
disabled={isPending}
|
||||||
>
|
>
|
||||||
{loading
|
{isPending
|
||||||
? actionAllow
|
? actionAllow
|
||||||
? "Please Wait..."
|
? "Please Wait..."
|
||||||
: "Send..."
|
: "Send..."
|
||||||
|
@ -9,6 +9,7 @@ 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"),
|
||||||
@ -23,7 +24,6 @@ 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,13 +37,19 @@ 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({
|
||||||
@ -76,22 +82,8 @@ 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">
|
||||||
@ -221,15 +213,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={isSubmitting}
|
disabled={isPending}
|
||||||
>
|
>
|
||||||
{isSubmitting ? "Please wait..." : "Submit"}
|
{isPending ? "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={isSubmitting}
|
disabled={isPending}
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</button>
|
</button>
|
||||||
|
@ -58,7 +58,10 @@ const EditActivityModal = ({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
const { mutate: UpdateTask, isPending } = useManageTask({
|
const { mutate: UpdateTask, isPending } = useManageTask({
|
||||||
onSuccessCallback: () => onClose?.()
|
onSuccessCallback: (response) =>
|
||||||
|
{
|
||||||
|
showToast(response?.message,"success")
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const activityID = watch("activityID");
|
const activityID = watch("activityID");
|
||||||
|
@ -7,6 +7,7 @@ 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"),
|
||||||
@ -68,7 +69,11 @@ 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: () => onClose?.(),
|
onSuccessCallback: ( response ) =>
|
||||||
|
{
|
||||||
|
showToast( response?.message, "success" )
|
||||||
|
onClose?.()
|
||||||
|
},
|
||||||
});
|
});
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
reset(defaultModel);
|
reset(defaultModel);
|
||||||
|
@ -499,14 +499,6 @@ 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,7 +115,6 @@ 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);
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -153,7 +152,6 @@ 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");
|
||||||
@ -181,7 +179,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