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";
|
||||
|
||||
export const ReportTask = ({ report, closeModal }) => {
|
||||
const [loading, setloading] = useState(false);
|
||||
const { mutate: reportTask, isPending } = useReportTask({
|
||||
onSuccessCallback: () => {
|
||||
reset();
|
||||
setloading(false);
|
||||
closeModal();
|
||||
},
|
||||
onErrorCallback: () => {
|
||||
setloading(false);
|
||||
},
|
||||
});
|
||||
|
||||
const maxPending =
|
||||
@ -59,7 +54,7 @@ export const ReportTask = ({ report, closeModal }) => {
|
||||
}, [report, reset]);
|
||||
|
||||
const onSubmit = (data) => {
|
||||
setloading(true);
|
||||
|
||||
const reportData = {
|
||||
...data,
|
||||
id: report?.id,
|
||||
@ -186,13 +181,14 @@ export const ReportTask = ({ report, closeModal }) => {
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-12 text-center my-2">
|
||||
<button type="submit" className="btn btn-sm btn-primary me-3">
|
||||
{loading ? "Please wait" : "Submit Report"}
|
||||
<button type="submit" className="btn btn-sm btn-primary me-3" disabled={isPending}>
|
||||
{isPending ? "Please wait" : "Submit Report"}
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-sm btn-label-secondary"
|
||||
onClick={handleClose}
|
||||
disabled={isPending}
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
|
@ -99,63 +99,6 @@ const ReportTaskComments = ({
|
||||
}
|
||||
}, [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) => {
|
||||
submitComment({ data: formData, commentsData });
|
||||
};
|
||||
@ -421,15 +364,16 @@ const ReportTaskComments = ({
|
||||
className="btn btn-sm btn-secondary"
|
||||
onClick={closeModal}
|
||||
data-bs-dismiss="modal"
|
||||
disabled={isPending}
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
<button
|
||||
type="submit"
|
||||
className="btn btn-sm btn-primary ms-2"
|
||||
disabled={loading}
|
||||
disabled={isPending}
|
||||
>
|
||||
{loading
|
||||
{isPending
|
||||
? actionAllow
|
||||
? "Please Wait..."
|
||||
: "Send..."
|
||||
|
@ -9,6 +9,7 @@ import {
|
||||
import showToast from "../../services/toastService";
|
||||
import ProjectRepository from "../../repositories/ProjectRepository";
|
||||
import { useTaskById } from "../../hooks/useTasks";
|
||||
import {useManageTask} from "../../hooks/useProjects";
|
||||
|
||||
const subTaskSchema = z.object({
|
||||
activityId: z.string().min(1, "Activity is required"),
|
||||
@ -23,7 +24,6 @@ const SubTask = ({ activity, onClose }) => {
|
||||
const [categoryData, setCategoryData] = useState([]);
|
||||
const { activities, loading } = useActivitiesMaster();
|
||||
const { categories, categoryLoading } = useWorkCategoriesMaster();
|
||||
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||
const { Task, loading: TaskLoading } = useTaskById(activity?.id);
|
||||
const {
|
||||
register,
|
||||
@ -37,13 +37,19 @@ const SubTask = ({ activity, onClose }) => {
|
||||
});
|
||||
const selectedActivityId = watch("activityId");
|
||||
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(() => {
|
||||
setCategoryData(categories);
|
||||
}, [categories]);
|
||||
|
||||
// Set initial values from activity
|
||||
useEffect(() => {
|
||||
if (!TaskLoading && (Task?.workItem || activity)) {
|
||||
reset({
|
||||
@ -76,22 +82,8 @@ const SubTask = ({ activity, onClose }) => {
|
||||
parentTaskId: activity?.id,
|
||||
comment: formData.comment,
|
||||
};
|
||||
setIsSubmitting(true);
|
||||
|
||||
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");
|
||||
}
|
||||
createSubTask([payload])
|
||||
};
|
||||
return (
|
||||
<div className="container-xxl my-1">
|
||||
@ -221,15 +213,15 @@ const SubTask = ({ activity, onClose }) => {
|
||||
<button
|
||||
type="submit"
|
||||
className="btn btn-sm btn-primary me-2"
|
||||
disabled={isSubmitting}
|
||||
disabled={isPending}
|
||||
>
|
||||
{isSubmitting ? "Please wait..." : "Submit"}
|
||||
{isPending ? "Please wait..." : "Submit"}
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-sm btn-secondary"
|
||||
onClick={() => onClose()}
|
||||
disabled={isSubmitting}
|
||||
disabled={isPending}
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
|
@ -58,7 +58,10 @@ const EditActivityModal = ({
|
||||
},
|
||||
});
|
||||
const { mutate: UpdateTask, isPending } = useManageTask({
|
||||
onSuccessCallback: () => onClose?.()
|
||||
onSuccessCallback: (response) =>
|
||||
{
|
||||
showToast(response?.message,"success")
|
||||
}
|
||||
});
|
||||
|
||||
const activityID = watch("activityID");
|
||||
|
@ -7,6 +7,7 @@ import {
|
||||
useWorkCategoriesMaster,
|
||||
} from "../../../hooks/masterHook/useMaster";
|
||||
import { useManageTask } from "../../../hooks/useProjects";
|
||||
import showToast from "../../../services/toastService";
|
||||
|
||||
const taskSchema = z.object({
|
||||
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 { mutate: CreateTask, isPending } = useManageTask({
|
||||
onSuccessCallback: () => onClose?.(),
|
||||
onSuccessCallback: ( response ) =>
|
||||
{
|
||||
showToast( response?.message, "success" )
|
||||
onClose?.()
|
||||
},
|
||||
});
|
||||
useEffect(() => {
|
||||
reset(defaultModel);
|
||||
|
@ -499,14 +499,6 @@ export const useManageTask = ({onSuccessCallback}) =>
|
||||
mutationFn: async ( payload ) => await ProjectRepository.manageProjectTasks( payload ),
|
||||
onSuccess: ( data, variables ) =>
|
||||
{
|
||||
|
||||
if ( variables[ 0 ]?.id )
|
||||
{
|
||||
showToast( 'Activity Updated Successfully', 'success' );
|
||||
} else
|
||||
{
|
||||
showToast( 'Activity Created Successfully', 'success' );
|
||||
}
|
||||
queryClient.invalidateQueries(["WorkItems"])
|
||||
if (onSuccessCallback) onSuccessCallback(data);
|
||||
},
|
||||
|
@ -115,7 +115,6 @@ export const useReportTask = ( {onSuccessCallback, onErrorCallback} = {} ) =>
|
||||
const msg =
|
||||
error?.response?.data?.message || error.message || "Error occurred during API call";
|
||||
showToast( msg, "error" );
|
||||
if (onErrorCallback) onErrorCallback(error);
|
||||
},
|
||||
});
|
||||
|
||||
@ -153,7 +152,6 @@ export const useSubmitTaskComment = ({ actionAllow, onSuccessCallback }) => {
|
||||
if (actionAllow) {
|
||||
showToast( "Review submitted successfully.", "success" );
|
||||
|
||||
// queryClient.invalidateQueries({ queryKey: [ "WorkItems", workAreaId ] });
|
||||
} else
|
||||
{
|
||||
showToast("Comment sent successfully.", "success");
|
||||
|
Loading…
x
Reference in New Issue
Block a user