Merge branch 'feature/refresh_notification_after_action' into 'develop'

add sidebar update in action

See merge request witel-front-end/rms!91
This commit is contained in:
AmirHossein Mahmoodi
2025-04-13 09:48:02 +00:00
19 changed files with 43 additions and 17 deletions

View File

@@ -29,6 +29,7 @@ const RegisterAction = ({ rowId, mutate, mutateParentTable }) => {
}
await requestServer(`${REGISTER_COMPLAINTS_LIST}/${rowId}`, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then((res) => {
mutate();

View File

@@ -38,6 +38,7 @@ const ReferContent = ({ rowId, mutate, setOpenReferDialog }) => {
formData.append("refer_description", data.description);
await requestServer(`${REFER_FAST_REACT}/${rowId}`, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then(() => {
mutate();

View File

@@ -47,6 +47,7 @@ const EditController = ({ rowId, mutate, setOpenEditDialog }) => {
await requestServer(`${UPDATE_FAST_REACT}/${rowId}`, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then(() => {
mutate();

View File

@@ -22,6 +22,7 @@ const ConfirmContent = ({ rowId, mutate, setOpenConfirmDialog }) => {
formData.append("verify", 1);
requestServer(`${VERIFY_BY_FAST_REACT_SUPERVISOR}/${rowId}`, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then(() => {
mutate();

View File

@@ -31,6 +31,7 @@ const RejectContent = ({ rowId, mutate, setOpenRejectDialog }) => {
formData.append("verify", 2);
requestServer(`${REJECT_BY_FAST_REACT_SUPERVISOR}/${rowId}`, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then(() => {
mutate();

View File

@@ -8,7 +8,7 @@ const RestoreContent = ({ rowId, mutate, setOpenRestoreDialog }) => {
const requestServer = useRequest({ notificationSuccess: true });
const handleClick = () => {
setSubmitting(true);
requestServer(`${RESTORE_FAST_REACT}/${rowId}`, "post")
requestServer(`${RESTORE_FAST_REACT}/${rowId}`, "post", { hasSidebarUpdate: true })
.then(() => {
mutate();
setOpenRestoreDialog(false);

View File

@@ -14,6 +14,7 @@ const OperatorCreateForm = ({ open, setOpen, mutate }) => {
}
await requestServer(CREATE_ROAD_ITEMS, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then((response) => {
mutate();

View File

@@ -117,6 +117,7 @@ const CompleteItem = ({ subItem, itemInfo, setSubmitCompleteForm, mutate, setOpe
await requestServer(CREATE_ROAD_ITEMS, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then((response) => {
mutate();

View File

@@ -69,14 +69,11 @@ const EditController = ({ rowId, mutate, setOpenEditDialog, openEditDialog, row
for (const [key, value] of Object.entries(result)) {
formData.append(key, value);
}
await requestServer(
`${UPDATE_ROAD_ITEMS}/${rowId}`,
"post",
{
data: formData,
},
{ notificationSuccess: true }
)
await requestServer(`${UPDATE_ROAD_ITEMS}/${rowId}`, "post", {
data: formData,
notificationSuccess: true,
hasSidebarUpdate: true,
})
.then((response) => {
mutate();
setOpenEditDialog(false);

View File

@@ -23,6 +23,7 @@ const ConfirmContent = ({ rowId, mutate, setOpenConfirmDialog }) => {
formData.append("verify", 1);
requestServer(`${VERIFY_BY_SUPERVISOR}/${rowId}`, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then(() => {
mutate();

View File

@@ -8,7 +8,9 @@ const DeleteContent = ({ rowId, mutate, setOpenDeleteDialog }) => {
const requestServer = useRequest({ notificationSuccess: true });
const handleClick = () => {
setSubmitting(true);
requestServer(`${DELETE_BY_SUPERVISOR}/${rowId}`, "post")
requestServer(`${DELETE_BY_SUPERVISOR}/${rowId}`, "post", {
hasSidebarUpdate: true,
})
.then(() => {
mutate();
setOpenDeleteDialog(false);

View File

@@ -31,6 +31,7 @@ const RejectContent = ({ rowId, mutate, setOpenRejectDialog }) => {
formData.append("verify", 2);
await requestServer(`${REJECT_BY_SUPERVISOR}/${rowId}`, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then(() => {
mutate();

View File

@@ -8,7 +8,9 @@ const RestoreContent = ({ rowId, mutate, setOpenRestoreDialog }) => {
const requestServer = useRequest({ notificationSuccess: true });
const handleClick = () => {
setSubmitting(true);
requestServer(`${RESTORE_BY_SUPERVISOR}/${rowId}`, "post")
requestServer(`${RESTORE_BY_SUPERVISOR}/${rowId}`, "post", {
hasSidebarUpdate: true,
})
.then(() => {
mutate();
setOpenRestoreDialog(false);

View File

@@ -90,6 +90,7 @@ const CreateFormContent = ({ setOpen, mutate }) => {
formData.append("point", startPoint);
await requestServer(FIRST_STEP_STORE, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then((response) => {
mutate();

View File

@@ -37,6 +37,7 @@ const StepThreeContent = ({ setOpen, mutate, rowId }) => {
formData.append("action_picture", data.action_picture);
await requestServer(`${THIRD_STEP_STORE}/${rowId}`, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then((response) => {
mutate();

View File

@@ -48,6 +48,7 @@ const StepTwoContent = ({ setOpenStepTwoDialog, mutate, rowId }) => {
data.judiciary_document.map((item, index) => formData.append(`judiciary_document[${index}]`, item));
await requestServer(`${SECOND_STEP_STORE}/${rowId}`, "post", {
data: formData,
hasSidebarUpdate: true,
})
.then((response) => {
mutate();

View File

@@ -8,7 +8,9 @@ const DeleteContent = ({ rowId, mutate, setOpenDeleteDialog }) => {
const requestServer = useRequest({ notificationSuccess: true });
const handleClick = () => {
setSubmitting(true);
requestServer(`${DELETE_SAFETY_AND_PRIVACY}/${rowId}`, "delete")
requestServer(`${DELETE_SAFETY_AND_PRIVACY}/${rowId}`, "delete", {
hasSidebarUpdate: true,
})
.then(() => {
mutate();
setOpenDeleteDialog(false);

View File

@@ -2,6 +2,7 @@ import { errorResponse } from "@/core/utils/errorResponse";
import { successRequest } from "@/core/utils/successRequest";
import axios from "axios";
import { useAuth } from "../contexts/auth";
import { useSidebarBadge } from "./useSidebarBadge";
const defaultOptions = {
data: {},
@@ -11,13 +12,22 @@ const defaultOptions = {
notificationShow: true,
notificationSuccess: false,
notificationFailed: true,
hasSidebarUpdate: false,
};
const useRequest = (initOptions) => {
const { mutate: sidebarUpdate } = useSidebarBadge();
const { logout } = useAuth();
const _options = Object.assign({}, defaultOptions, initOptions);
/**
* Performs an HTTP request.
* @param {string} url - The URL to send the request to.
* @param {'get' | 'post' | 'put' | 'delete'} [method='get'] - HTTP method.
* @param {object} [options] - Additional request options.
* @returns {Promise<AxiosResponse>} - Axios response.
*/
return async (url = "", method = "get", options) => {
const mergedOptions = Object.assign({}, _options, options);
try {
@@ -28,6 +38,9 @@ const useRequest = (initOptions) => {
withCredentials: true,
...mergedOptions.requestOptions,
});
if (mergedOptions.hasSidebarUpdate) {
if (method === "post" || method === "put" || method === "delete") sidebarUpdate();
}
successRequest(mergedOptions.notificationShow && mergedOptions.notificationSuccess, "request_data");
return response;
} catch (error) {

View File

@@ -1,18 +1,16 @@
import { GET_SIDEBAR_BADGE_ROUTE } from "@/core/utils/routes";
import axios from "axios";
import useSWR from "swr";
import useRequest from "./useRequest";
export const useSidebarBadge = () => {
const request = useRequest();
const fetcher = async (url) => {
try {
const response = await request(url);
const response = await axios({ url, method: "get", withCredentials: true });
return response.data.data;
} catch (error) {
throw new Error();
}
};
return useSWR(GET_SIDEBAR_BADGE_ROUTE, fetcher, { keepPreviousData: true, dedupingInterval: 10000 });
return useSWR(GET_SIDEBAR_BADGE_ROUTE, fetcher, { keepPreviousData: true, dedupingInterval: 30000 });
};