diff --git a/src/components/dashboard/commercial-chief/Form/ConfirmForm.jsx b/src/components/dashboard/commercial-chief/Form/ConfirmForm.jsx index d3aa7ce..c2025ab 100644 --- a/src/components/dashboard/commercial-chief/Form/ConfirmForm.jsx +++ b/src/components/dashboard/commercial-chief/Form/ConfirmForm.jsx @@ -18,6 +18,8 @@ import {useFormik} from "formik"; import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import {CONFIRM_COMMERCIAL_CHIEF} from "@/core/data/apiRoutes"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Confirm = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); @@ -27,6 +29,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { const [showAddIcon, setShowAddIcon] = useState(true); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const formik = useFormik({ initialValues: { @@ -42,6 +45,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/commercial-chief/Form/RejectForm.jsx b/src/components/dashboard/commercial-chief/Form/RejectForm.jsx index 42d7694..fd8becb 100644 --- a/src/components/dashboard/commercial-chief/Form/RejectForm.jsx +++ b/src/components/dashboard/commercial-chief/Form/RejectForm.jsx @@ -19,6 +19,8 @@ import UploadSystem from "@/core/components/UploadSystem"; import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Reject = ({rowId, fetchUrl, mutate}) => { const [selectedImage, setSelectedImage] = useState(""); @@ -28,6 +30,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -48,6 +51,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/development-assistant/Form/ConfirmForm.jsx b/src/components/dashboard/development-assistant/Form/ConfirmForm.jsx index 73cad5f..07b3253 100644 --- a/src/components/dashboard/development-assistant/Form/ConfirmForm.jsx +++ b/src/components/dashboard/development-assistant/Form/ConfirmForm.jsx @@ -18,6 +18,8 @@ import {useFormik} from "formik"; import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import {CONFIRM_DEVELOPMENT_ASSISTANT} from "@/core/data/apiRoutes"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Confirm = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); @@ -27,6 +29,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { const [showAddIcon, setShowAddIcon] = useState(true); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const formik = useFormik({ initialValues: { @@ -42,6 +45,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/development-assistant/Form/RejectForm.jsx b/src/components/dashboard/development-assistant/Form/RejectForm.jsx index 69df945..eb4e4a1 100644 --- a/src/components/dashboard/development-assistant/Form/RejectForm.jsx +++ b/src/components/dashboard/development-assistant/Form/RejectForm.jsx @@ -19,6 +19,8 @@ import UploadSystem from "@/core/components/UploadSystem"; import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Reject = ({rowId, fetchUrl, mutate}) => { const [selectedImage, setSelectedImage] = useState(""); @@ -28,6 +30,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -48,6 +51,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/inspector-expert/Form/ConfirmForm.jsx b/src/components/dashboard/inspector-expert/Form/ConfirmForm.jsx index 6beaed1..409ba94 100644 --- a/src/components/dashboard/inspector-expert/Form/ConfirmForm.jsx +++ b/src/components/dashboard/inspector-expert/Form/ConfirmForm.jsx @@ -18,6 +18,8 @@ import {useFormik} from "formik"; import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import {CONFIRM_INSPECTOR_EXPERT} from "@/core/data/apiRoutes"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Confirm = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); @@ -27,6 +29,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { const [showAddIcon, setShowAddIcon] = useState(true); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const formik = useFormik({ initialValues: { @@ -42,6 +45,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/inspector-expert/Form/RejectForm.jsx b/src/components/dashboard/inspector-expert/Form/RejectForm.jsx index 47a4bf4..f59758d 100644 --- a/src/components/dashboard/inspector-expert/Form/RejectForm.jsx +++ b/src/components/dashboard/inspector-expert/Form/RejectForm.jsx @@ -20,6 +20,8 @@ import UploadFileNotification from "@/core/components/notifications/UploadFileNo import useDirection from "@/lib/app/hooks/useDirection"; import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Reject = ({rowId, fetchUrl, mutate}) => { const [selectedImage, setSelectedImage] = useState(""); @@ -30,6 +32,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { const {directionApp} = useDirection(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -50,6 +53,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/inspector-expert/Form/ReviseForm.jsx b/src/components/dashboard/inspector-expert/Form/ReviseForm.jsx index 988b3ee..2661965 100644 --- a/src/components/dashboard/inspector-expert/Form/ReviseForm.jsx +++ b/src/components/dashboard/inspector-expert/Form/ReviseForm.jsx @@ -16,11 +16,14 @@ import * as Yup from "yup"; import {useState} from "react"; import useRequest from "@/lib/app/hooks/useRequest"; import EditIcon from "@mui/icons-material/Edit"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Revise = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("ReviseDialog.description_error")), @@ -39,6 +42,7 @@ const Revise = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/machinary-office/Form/ConfirmForm.jsx b/src/components/dashboard/machinary-office/Form/ConfirmForm.jsx index ef68207..ab4b11f 100644 --- a/src/components/dashboard/machinary-office/Form/ConfirmForm.jsx +++ b/src/components/dashboard/machinary-office/Form/ConfirmForm.jsx @@ -20,6 +20,8 @@ import UploadFileNotification from "@/core/components/notifications/UploadFileNo import {CONFIRM_MACHINARY_OFFICE} from "@/core/data/apiRoutes"; import * as Yup from "yup"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Confirm = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); @@ -30,6 +32,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { const [showAddIcon, setShowAddIcon] = useState(true); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ proposed_amount: Yup.number().positive(t("ConfirmDialog.proposed_amount_positive")).required(t("ConfirmDialog.proposed_amount_error")), @@ -51,6 +54,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/machinary-office/Form/RejectForm.jsx b/src/components/dashboard/machinary-office/Form/RejectForm.jsx index e82332b..61cec90 100644 --- a/src/components/dashboard/machinary-office/Form/RejectForm.jsx +++ b/src/components/dashboard/machinary-office/Form/RejectForm.jsx @@ -20,6 +20,8 @@ import UploadFileNotification from "@/core/components/notifications/UploadFileNo import useDirection from "@/lib/app/hooks/useDirection"; import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Reject = ({rowId, fetchUrl, mutate}) => { const [selectedImage, setSelectedImage] = useState(""); @@ -30,6 +32,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { const {directionApp} = useDirection(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -50,6 +53,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/navgan-province-manager/Form/ConfirmForm.jsx b/src/components/dashboard/navgan-province-manager/Form/ConfirmForm.jsx index a975f0c..a4d0c1a 100644 --- a/src/components/dashboard/navgan-province-manager/Form/ConfirmForm.jsx +++ b/src/components/dashboard/navgan-province-manager/Form/ConfirmForm.jsx @@ -19,6 +19,8 @@ import {useFormik} from "formik"; import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import {CONFIRM_NAVGAN_PROVINCE_MANAGER} from "@/core/data/apiRoutes"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Confirm = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); @@ -29,6 +31,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { const [showAddIcon, setShowAddIcon] = useState(true); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const formik = useFormik({ initialValues: { @@ -44,6 +47,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/navgan-province-manager/Form/RejectForm.jsx b/src/components/dashboard/navgan-province-manager/Form/RejectForm.jsx index e50507f..6f81b4a 100644 --- a/src/components/dashboard/navgan-province-manager/Form/RejectForm.jsx +++ b/src/components/dashboard/navgan-province-manager/Form/RejectForm.jsx @@ -20,6 +20,8 @@ import UploadFileNotification from "@/core/components/notifications/UploadFileNo import useDirection from "@/lib/app/hooks/useDirection"; import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Reject = ({rowId, fetchUrl, mutate}) => { const [selectedImage, setSelectedImage] = useState(""); @@ -30,6 +32,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { const {directionApp} = useDirection(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -50,6 +53,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/passenger-boss/Form/ConfirmForm.jsx b/src/components/dashboard/passenger-boss/Form/ConfirmForm.jsx index 1628947..d4305f5 100644 --- a/src/components/dashboard/passenger-boss/Form/ConfirmForm.jsx +++ b/src/components/dashboard/passenger-boss/Form/ConfirmForm.jsx @@ -20,6 +20,8 @@ import UploadFileNotification from "@/core/components/notifications/UploadFileNo import * as Yup from "yup"; import useRequest from "@/lib/app/hooks/useRequest"; import {CONFIRM_PASSENGER_BOSS} from "@/core/data/apiRoutes"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Confirm = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); @@ -30,6 +32,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { const [showAddIcon, setShowAddIcon] = useState(true); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ approved_amount: Yup.number().positive(t("ConfirmDialog.approved_amount_positive")).required(t("ConfirmDialog.approved_amount_error")) @@ -51,6 +54,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/passenger-boss/Form/RejectForm.jsx b/src/components/dashboard/passenger-boss/Form/RejectForm.jsx index 2c4e38d..3688ae7 100644 --- a/src/components/dashboard/passenger-boss/Form/RejectForm.jsx +++ b/src/components/dashboard/passenger-boss/Form/RejectForm.jsx @@ -20,6 +20,8 @@ import UploadFileNotification from "@/core/components/notifications/UploadFileNo import useDirection from "@/lib/app/hooks/useDirection"; import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Reject = ({rowId, fetchUrl, mutate}) => { const [selectedImage, setSelectedImage] = useState(""); @@ -30,6 +32,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { const {directionApp} = useDirection(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -50,6 +53,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx b/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx index 1056390..1be22c8 100644 --- a/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx +++ b/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx @@ -19,6 +19,7 @@ import {useFormik} from "formik"; import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import useRequest from "@/lib/app/hooks/useRequest"; import {CONFIRM_PASSENGER_OFFICE} from "@/core/data/apiRoutes"; +import useNotification from "@/lib/app/hooks/useNotification"; const Confirm = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); @@ -29,6 +30,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { const [showAddIcon, setShowAddIcon] = useState(true); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const formik = useFormik({ initialValues: { @@ -44,6 +46,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/passenger-office/Form/RejectForm.jsx b/src/components/dashboard/passenger-office/Form/RejectForm.jsx index 505389e..b187a2b 100644 --- a/src/components/dashboard/passenger-office/Form/RejectForm.jsx +++ b/src/components/dashboard/passenger-office/Form/RejectForm.jsx @@ -20,6 +20,8 @@ import UploadFileNotification from "@/core/components/notifications/UploadFileNo import useDirection from "@/lib/app/hooks/useDirection"; import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Reject = ({rowId, fetchUrl, mutate}) => { const [selectedImage, setSelectedImage] = useState(""); @@ -30,6 +32,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { const {directionApp} = useDirection(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -50,6 +53,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/province-head-expert/Form/ConfirmForm.jsx b/src/components/dashboard/province-head-expert/Form/ConfirmForm.jsx index 4789f1b..c4cc607 100644 --- a/src/components/dashboard/province-head-expert/Form/ConfirmForm.jsx +++ b/src/components/dashboard/province-head-expert/Form/ConfirmForm.jsx @@ -18,6 +18,8 @@ import {useFormik} from "formik"; import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import {CONFIRM_PROVINCE_HEAD_EXPERT} from "@/core/data/apiRoutes"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Confirm = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); @@ -27,6 +29,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { const [showAddIcon, setShowAddIcon] = useState(true); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const formik = useFormik({ initialValues: { @@ -42,6 +45,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/province-head-expert/Form/RejectForm.jsx b/src/components/dashboard/province-head-expert/Form/RejectForm.jsx index 1c54e93..e41f95a 100644 --- a/src/components/dashboard/province-head-expert/Form/RejectForm.jsx +++ b/src/components/dashboard/province-head-expert/Form/RejectForm.jsx @@ -20,6 +20,8 @@ import UploadFileNotification from "@/core/components/notifications/UploadFileNo import useDirection from "@/lib/app/hooks/useDirection"; import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Reject = ({rowId, fetchUrl, mutate}) => { const [selectedImage, setSelectedImage] = useState(""); @@ -30,6 +32,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { const {directionApp} = useDirection(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -50,6 +53,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/province-head-expert/Form/ReviceForm.jsx b/src/components/dashboard/province-head-expert/Form/ReviceForm.jsx index fa5045e..0c61316 100644 --- a/src/components/dashboard/province-head-expert/Form/ReviceForm.jsx +++ b/src/components/dashboard/province-head-expert/Form/ReviceForm.jsx @@ -16,11 +16,14 @@ import {useFormik} from "formik"; import {REVISE_PROVINCE_HEAD_EXPERT} from "@/core/data/apiRoutes"; import useRequest from "@/lib/app/hooks/useRequest"; import * as Yup from "yup"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Revise = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -39,6 +42,7 @@ const Revise = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/refahi-province-manager/Form/ConfirmForm.jsx b/src/components/dashboard/refahi-province-manager/Form/ConfirmForm.jsx index c4d2b49..f14421c 100644 --- a/src/components/dashboard/refahi-province-manager/Form/ConfirmForm.jsx +++ b/src/components/dashboard/refahi-province-manager/Form/ConfirmForm.jsx @@ -19,6 +19,8 @@ import {useFormik} from "formik"; import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import useRequest from "@/lib/app/hooks/useRequest"; import {CONFIRM_REFAHI_PROVINCE_MANAGER} from "@/core/data/apiRoutes"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Confirm = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); @@ -29,6 +31,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { const [showAddIcon, setShowAddIcon] = useState(true); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const formik = useFormik({ initialValues: { @@ -44,6 +47,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/refahi-province-manager/Form/RejectForm.jsx b/src/components/dashboard/refahi-province-manager/Form/RejectForm.jsx index d2df7da..f253844 100644 --- a/src/components/dashboard/refahi-province-manager/Form/RejectForm.jsx +++ b/src/components/dashboard/refahi-province-manager/Form/RejectForm.jsx @@ -20,6 +20,8 @@ import UploadFileNotification from "@/core/components/notifications/UploadFileNo import useDirection from "@/lib/app/hooks/useDirection"; import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Reject = ({rowId, fetchUrl, mutate}) => { const [selectedImage, setSelectedImage] = useState(""); @@ -30,6 +32,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { const {directionApp} = useDirection(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -50,6 +53,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/transportation-assistance/Form/ConfirmForm.jsx b/src/components/dashboard/transportation-assistance/Form/ConfirmForm.jsx index d687349..7aba85c 100644 --- a/src/components/dashboard/transportation-assistance/Form/ConfirmForm.jsx +++ b/src/components/dashboard/transportation-assistance/Form/ConfirmForm.jsx @@ -19,6 +19,8 @@ import {useFormik} from "formik"; import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import {CONFIRM_TRANSPORTATION_ASSISTANCE} from "@/core/data/apiRoutes"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Confirm = ({rowId, fetchUrl, mutate}) => { const t = useTranslations(); @@ -29,6 +31,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { const [showAddIcon, setShowAddIcon] = useState(true); const [openConfirmDialog, setOpenConfirmDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const formik = useFormik({ initialValues: { @@ -44,6 +47,7 @@ const Confirm = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/components/dashboard/transportation-assistance/Form/RejectForm.jsx b/src/components/dashboard/transportation-assistance/Form/RejectForm.jsx index fff4c48..d7a41df 100644 --- a/src/components/dashboard/transportation-assistance/Form/RejectForm.jsx +++ b/src/components/dashboard/transportation-assistance/Form/RejectForm.jsx @@ -20,6 +20,8 @@ import UploadFileNotification from "@/core/components/notifications/UploadFileNo import useDirection from "@/lib/app/hooks/useDirection"; import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + const Reject = ({rowId, fetchUrl, mutate}) => { const [selectedImage, setSelectedImage] = useState(""); @@ -30,6 +32,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { const {directionApp} = useDirection(); const [openRejectDialog, setOpenRejectDialog] = useState(false); const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), @@ -50,6 +53,7 @@ const Reject = ({rowId, fetchUrl, mutate}) => { data: formData, }).then((response) => { mutate(fetchUrl) + update_notification() }).catch(() => { }).finally(() => { setSubmitting(false); diff --git a/src/core/data/sidebarMenu.jsx b/src/core/data/sidebarMenu.jsx index 2c1965a..c1b7605 100644 --- a/src/core/data/sidebarMenu.jsx +++ b/src/core/data/sidebarMenu.jsx @@ -23,87 +23,97 @@ const sidebarMenu = [ { key: "sidebar.passenger-office-chief", secondary: "secondary.passenger-office", + name: "passenger_office_chief", type: "page", route: "/dashboard/passenger-office-chief", icon: , selected: false, - permission: "passenger_office_chief", + permission: "manage_passenger_office_navgan", }, { key: "sidebar.machinery-expert", + name: "machinery_expert", type: "page", route: "/dashboard/machinery-expert", icon: , selected: false, - permission: "machinery_expert", + permission: "manage_machinery_navgan", }, { key: "sidebar.passenger-boss", secondary: "secondary.passenger-boss", + name: "province_manager_navgan", type: "page", route: "/dashboard/passenger-boss", icon: , selected: false, - permission: "passenger_office_chief", + permission: "manage_province_working_group_navgan", }, { key: "sidebar.transportation-assistant", + name: "transportation_assistant", type: "page", route: "/dashboard/transportation-assistant", icon: , selected: false, - permission: "transportation_assistant", + permission: "manage_transportation_navgan", }, { key: "sidebar.navgan-province-manager", secondary: "secondary.navgan-province-manager", + name: "province_manager_navgan", type: "page", route: "/dashboard/navgan-province-manager", icon: , selected: false, - permission: "province_manager", + permission: "manage_province_affairs_navgan", }, { key: "sidebar.province-head-expert", + name: "province_head_expert", type: "page", route: "/dashboard/province-head-expert", icon: , selected: false, - permission: "province_head_expert", + permission: "manage_province_headquarter_refahi", }, { key: "sidebar.inspector-expert", + name: "inspector_expert", type: "page", route: "/dashboard/inspector-expert", icon: , selected: false, - permission: "inspector_expert", + permission: "manage_inspector_refahi", }, { key: "sidebar.commercial-chief", + name: "commercial_chief", type: "page", route: "/dashboard/commercial-chief", icon: , selected: false, - permission: "commercial_chief", + permission: "manage_commercial_refahi", }, { key: "sidebar.development-assistant", + name: "development_assistant", type: "page", route: "/dashboard/development-assistant", icon: , selected: false, - permission: "development_assistant", + permission: "manage_development_refahi", }, { key: "sidebar.refahi-province-manager", secondary: "secondary.refahi-province-manager", + name: "province_manager_refahi", type: "page", route: "/dashboard/refahi-province-manager", icon: , selected: false, - permission: "province_manager", + permission: "manage_province_affairs_refahi", }, ], ]; diff --git a/src/layouts/dashboardLayouts/sidebar/SidebarList.jsx b/src/layouts/dashboardLayouts/sidebar/SidebarList.jsx index 38ff5f2..a030b52 100644 --- a/src/layouts/dashboardLayouts/sidebar/SidebarList.jsx +++ b/src/layouts/dashboardLayouts/sidebar/SidebarList.jsx @@ -38,7 +38,7 @@ export default function SidebarList({handleDrawerToggle}) { }, [router.pathname]); const filteredItemMenu = itemMenu[0].filter( - (item) => user.role.includes(item.permission) || item.permission === "all" + (item) => user.permissions.includes(item.permission) || item.permission === "all" ); return ( diff --git a/src/layouts/dashboardLayouts/sidebar/SidebarListItem.jsx b/src/layouts/dashboardLayouts/sidebar/SidebarListItem.jsx index c0c3037..6eb1f55 100644 --- a/src/layouts/dashboardLayouts/sidebar/SidebarListItem.jsx +++ b/src/layouts/dashboardLayouts/sidebar/SidebarListItem.jsx @@ -17,7 +17,7 @@ const SidebarListItem = ({item, dispatch, handleDrawerToggle}) => { { }) }; - const {data} = useSWR(GET_SIDEBAR_NOTIFICATION, fetcher) + const {data, mutate} = useSWR(GET_SIDEBAR_NOTIFICATION, fetcher) const notification_count = data //swr config - + // render data - return {notification_count} + return {notification_count, update_notification: mutate} } export default useNotification \ No newline at end of file diff --git a/src/middlewares/RolePermission.jsx b/src/middlewares/RolePermission.jsx index 357536f..67fc3f1 100644 --- a/src/middlewares/RolePermission.jsx +++ b/src/middlewares/RolePermission.jsx @@ -9,7 +9,7 @@ const RolePermissionMiddleware = ({children, requiredPermissions}) => { const t = useTranslations(); const hasPermission = requiredPermissions.some((permission) => - user?.role?.includes(permission) + user?.permissions?.includes(permission) ); if (!hasPermission) { diff --git a/src/pages/dashboard/commercial-chief/index.jsx b/src/pages/dashboard/commercial-chief/index.jsx index 6a0d02a..841d668 100644 --- a/src/pages/dashboard/commercial-chief/index.jsx +++ b/src/pages/dashboard/commercial-chief/index.jsx @@ -3,7 +3,7 @@ import WithAuthMiddleware from "@/middlewares/WithAuth"; import {parse} from "next-useragent"; import DashboardCommercialChiefComponent from "@/components/dashboard/commercial-chief"; -const requiredPermissions = ["commercial_chief"]; +const requiredPermissions = ["manage_commercial_refahi"]; export default function CommercialChief() { return ( diff --git a/src/pages/dashboard/development-assistant/index.jsx b/src/pages/dashboard/development-assistant/index.jsx index 90685ee..aaaea39 100644 --- a/src/pages/dashboard/development-assistant/index.jsx +++ b/src/pages/dashboard/development-assistant/index.jsx @@ -3,7 +3,7 @@ import WithAuthMiddleware from "@/middlewares/WithAuth"; import {parse} from "next-useragent"; import DashboardDevelopmentAssistantComponent from "@/components/dashboard/development-assistant"; -const requiredPermissions = ["development_assistant"]; +const requiredPermissions = ["manage_development_refahi"]; export default function DevelopmentAssistant() { return ( diff --git a/src/pages/dashboard/inspector-expert/index.jsx b/src/pages/dashboard/inspector-expert/index.jsx index b573446..902a7ec 100644 --- a/src/pages/dashboard/inspector-expert/index.jsx +++ b/src/pages/dashboard/inspector-expert/index.jsx @@ -3,7 +3,7 @@ import WithAuthMiddleware from "@/middlewares/WithAuth"; import {parse} from "next-useragent"; import DashboardInspectorExpertComponent from "@/components/dashboard/inspector-expert"; -const requiredPermissions = ["inspector_expert"]; +const requiredPermissions = ["manage_inspector_refahi"]; export default function InspectorExpert() { return ( diff --git a/src/pages/dashboard/machinery-expert/index.jsx b/src/pages/dashboard/machinery-expert/index.jsx index d05e7df..fc0c248 100644 --- a/src/pages/dashboard/machinery-expert/index.jsx +++ b/src/pages/dashboard/machinery-expert/index.jsx @@ -3,7 +3,7 @@ import RolePermissionMiddleware from "@/middlewares/RolePermission"; import WithAuthMiddleware from "@/middlewares/WithAuth"; import {parse} from "next-useragent"; -const requiredPermissions = ["machinery_expert"]; +const requiredPermissions = ["manage_machinery_navgan"]; export default function PassengerOffice() { return ( diff --git a/src/pages/dashboard/navgan-province-manager/index.jsx b/src/pages/dashboard/navgan-province-manager/index.jsx index c726988..fde7e8c 100644 --- a/src/pages/dashboard/navgan-province-manager/index.jsx +++ b/src/pages/dashboard/navgan-province-manager/index.jsx @@ -3,7 +3,7 @@ import RolePermissionMiddleware from "@/middlewares/RolePermission"; import WithAuthMiddleware from "@/middlewares/WithAuth"; import {parse} from "next-useragent"; -const requiredPermissions = ["province_manager"]; +const requiredPermissions = ["manage_province_affairs_navgan"]; export default function PassengerOffice() { return ( diff --git a/src/pages/dashboard/passenger-boss/index.jsx b/src/pages/dashboard/passenger-boss/index.jsx index 4386bf9..75b7234 100644 --- a/src/pages/dashboard/passenger-boss/index.jsx +++ b/src/pages/dashboard/passenger-boss/index.jsx @@ -3,7 +3,7 @@ import RolePermissionMiddleware from "@/middlewares/RolePermission"; import WithAuthMiddleware from "@/middlewares/WithAuth"; import {parse} from "next-useragent"; -const requiredPermissions = ["passenger_office_chief"]; +const requiredPermissions = ["manage_working_group_navgan"]; export default function PassengerBoss() { return ( diff --git a/src/pages/dashboard/passenger-office-chief/index.jsx b/src/pages/dashboard/passenger-office-chief/index.jsx index 4bfcc91..f92ae2f 100644 --- a/src/pages/dashboard/passenger-office-chief/index.jsx +++ b/src/pages/dashboard/passenger-office-chief/index.jsx @@ -3,7 +3,7 @@ import RolePermissionMiddleware from "@/middlewares/RolePermission"; import WithAuthMiddleware from "@/middlewares/WithAuth"; import {parse} from "next-useragent"; -const requiredPermissions = ["passenger_office_chief"]; +const requiredPermissions = ["manage_passenger_office_navgan"]; export default function PassengerOffice() { return ( diff --git a/src/pages/dashboard/province-head-expert/index.jsx b/src/pages/dashboard/province-head-expert/index.jsx index a1b81d0..e288c37 100644 --- a/src/pages/dashboard/province-head-expert/index.jsx +++ b/src/pages/dashboard/province-head-expert/index.jsx @@ -3,7 +3,7 @@ import WithAuthMiddleware from "@/middlewares/WithAuth"; import {parse} from "next-useragent"; import DashboardProvinceHeadExpertComponent from "@/components/dashboard/province-head-expert"; -const requiredPermissions = ["province_head_expert"]; +const requiredPermissions = ["manage_province_headquarter_refahi"]; export default function ProvinceHeadExpertOffice() { return ( diff --git a/src/pages/dashboard/refahi-province-manager/index.jsx b/src/pages/dashboard/refahi-province-manager/index.jsx index 8556848..baac91b 100644 --- a/src/pages/dashboard/refahi-province-manager/index.jsx +++ b/src/pages/dashboard/refahi-province-manager/index.jsx @@ -3,7 +3,7 @@ import WithAuthMiddleware from "@/middlewares/WithAuth"; import {parse} from "next-useragent"; import DashboardRefahiProvinceManagerComponent from "@/components/dashboard/refahi-province-manager"; -const requiredPermissions = ["province_manager"]; +const requiredPermissions = ["manage_province_affairs_refahi"]; export default function RefahiProvinceManager() { return ( diff --git a/src/pages/dashboard/transportation-assistant/index.jsx b/src/pages/dashboard/transportation-assistant/index.jsx index 089946c..ea58847 100644 --- a/src/pages/dashboard/transportation-assistant/index.jsx +++ b/src/pages/dashboard/transportation-assistant/index.jsx @@ -3,7 +3,7 @@ import RolePermissionMiddleware from "@/middlewares/RolePermission"; import WithAuthMiddleware from "@/middlewares/WithAuth"; import {parse} from "next-useragent"; -const requiredPermissions = ["transportation_assistant"]; +const requiredPermissions = ["manage_transportation_navgan"]; export default function TransportationAssistance() { return (