used useRequest

This commit is contained in:
Amirhossein Mahmoodi
2023-08-09 15:05:29 +03:30
parent 65753c52ca
commit 64e717990f
13 changed files with 147 additions and 238 deletions

View File

@@ -6,45 +6,27 @@ import * as Yup from "yup";
import {useTranslations} from "next-intl";
import PasswordField from "@/core/components/PasswordField";
import StyledForm from "@/core/components/StyledForm";
import {CHANGE_PASSWORD} from "@/core/data/apiRoutes";
import useUser from "@/lib/app/hooks/useUser";
import axios from "axios";
import Notifications from "@/core/components/notifications";
import useDirection from "@/lib/app/hooks/useDirection";
import {toast} from "react-toastify";
import {SET_USER_PASSWORD} from "@/core/data/apiRoutes";
import SvgChangePassword from "@/core/components/svgs/SvgChangePassword";
import useRequest from "@/lib/app/hooks/useRequest";
const DashboardChangePasswordComponent = () => {
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const requestServer = useRequest({auth: true})
const handleSubmit = (values, {setSubmitting, resetForm}) => {
Notifications(t);
axios
.post(
CHANGE_PASSWORD,
{
current_password: values.current_password,
new_password: values.new_password,
new_password_confirmation: values.new_password_confirmation,
},
{
headers: {authorization: `Bearer ${token}`},
}
)
.then((response) => {
toast.dismiss(pendingToast); // Dismiss the pending toast notification
Notifications(t, response);
resetForm();
})
.catch((error) => {
toast.dismiss(pendingToast); // Dismiss the pending toast notification
Notifications(t, error.response);
})
.finally(() => {
setSubmitting(false); // Set `setSubmitting` to false after the API request completes
});
requestServer(SET_USER_PASSWORD, 'post', {
data: {
current_password: values.current_password,
new_password: values.new_password,
new_password_confirmation: values.new_password_confirmation,
},
}).then((response) => {
resetForm();
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
};
const initialValues = {
current_password: "",

View File

@@ -14,24 +14,22 @@ import {
} from "@mui/material";
import ThumbUpAltIcon from "@mui/icons-material/ThumbUpAlt";
import UploadSystem from "@/core/components/UploadSystem";
import useUser from "@/lib/app/hooks/useUser";
import useDirection from "@/lib/app/hooks/useDirection";
import axios from "axios";
import {useFormik} from "formik";
import UploadFileNotification from "@/core/components/notifications/UploadFileNotification";
import Notifications from "@/core/components/notifications";
import {CONFIRM_MACHINARY_OFFICE} from "@/core/data/apiRoutes";
import * as Yup from "yup";
import useRequest from "@/lib/app/hooks/useRequest";
const Confirm = ({rowId, fetchUrl, mutate}) => {
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const [selectedImage, setSelectedImage] = useState("");
const [fileType, setfileType] = useState(null);
const [fileName, setfileName] = useState(null);
const [showAddIcon, setShowAddIcon] = useState(true);
const [openConfirmDialog, setOpenConfirmDialog] = useState(false);
const requestServer = useRequest({auth: true})
const validationSchema = Yup.object().shape({
proposed_amount: Yup.number().positive(t("ConfirmDialog.proposed_amount_positive")).required(t("ConfirmDialog.proposed_amount_error")),
@@ -43,24 +41,19 @@ const Confirm = ({rowId, fetchUrl, mutate}) => {
confirm_img: ""
},
validationSchema,
onSubmit: (values) => {
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
formData.append("proposed_amount", values.proposed_amount);
if (values.description != "") formData.append("expert_description", values.description);
Notifications(directionApp, t, undefined)
axios
.post(`${CONFIRM_MACHINARY_OFFICE}/${rowId}`, formData, {
headers: {authorization: `Bearer ${token}`},
})
.then((response) => {
Notifications(directionApp, t, response);
mutate(fetchUrl)
formik.setSubmitting(false)
})
.catch((error) => {
Notifications(directionApp, t, error.response);
formik.setSubmitting(false)
});
requestServer(`${CONFIRM_MACHINARY_OFFICE}/${rowId}`, 'post', {
data: formData,
}).then((response) => {
mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
},
});

View File

@@ -19,9 +19,7 @@ import UploadSystem from "@/core/components/UploadSystem";
import UploadFileNotification from "@/core/components/notifications/UploadFileNotification";
import useDirection from "@/lib/app/hooks/useDirection";
import ThumbDownIcon from "@mui/icons-material/ThumbDown";
import Notifications from "@/core/components/notifications";
import axios from "axios";
import useUser from "@/lib/app/hooks/useUser";
import useRequest from "@/lib/app/hooks/useRequest";
const Reject = ({rowId, fetchUrl, mutate}) => {
const [selectedImage, setSelectedImage] = useState("");
@@ -29,9 +27,9 @@ const Reject = ({rowId, fetchUrl, mutate}) => {
const [fileName, setfileName] = useState(null);
const [showAddIcon, setShowAddIcon] = useState(true);
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const [openRejectDialog, setOpenRejectDialog] = useState(false);
const requestServer = useRequest({auth: true})
const validationSchema = Yup.object().shape({
description: Yup.string().required(t("RejectDialog.description_error")),
@@ -43,23 +41,18 @@ const Reject = ({rowId, fetchUrl, mutate}) => {
reject_img: ""
},
validationSchema,
onSubmit: (values) => {
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
formData.append("expert_description", values.description);
Notifications(directionApp, t, undefined)
axios
.post(`${REJECT_MACHINARY_OFFICE}/${rowId}`, formData, {
headers: {authorization: `Bearer ${token}`},
})
.then((response) => {
Notifications(directionApp, t, response);
mutate(fetchUrl)
formik.setSubmitting(false)
})
.catch((error) => {
Notifications(directionApp, t, error.response);
formik.setSubmitting(false)
});
requestServer(`${REJECT_MACHINARY_OFFICE}/${rowId}`, 'post', {
data: formData,
}).then((response) => {
mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
},
});

View File

@@ -14,24 +14,22 @@ import {
} from "@mui/material";
import ThumbUpAltIcon from "@mui/icons-material/ThumbUpAlt";
import UploadSystem from "@/core/components/UploadSystem";
import useUser from "@/lib/app/hooks/useUser";
import useDirection from "@/lib/app/hooks/useDirection";
import axios from "axios";
import {useFormik} from "formik";
import UploadFileNotification from "@/core/components/notifications/UploadFileNotification";
import Notifications from "@/core/components/notifications";
import {CONFIRM_PASSENGER_BOSS} from "@/core/data/apiRoutes";
import * as Yup from "yup";
import useRequest from "@/lib/app/hooks/useRequest";
import {CONFIRM_PASSENGER_BOSS} from "@/core/data/apiRoutes";
const Confirm = ({rowId, fetchUrl, mutate}) => {
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const [selectedImage, setSelectedImage] = useState("");
const [fileType, setfileType] = useState(null);
const [fileName, setfileName] = useState(null);
const [showAddIcon, setShowAddIcon] = useState(true);
const [openConfirmDialog, setOpenConfirmDialog] = useState(false);
const requestServer = useRequest({auth: true})
const validationSchema = Yup.object().shape({
approved_amount: Yup.number().positive(t("ConfirmDialog.approved_amount_positive")).required(t("ConfirmDialog.approved_amount_error"))
@@ -43,24 +41,19 @@ const Confirm = ({rowId, fetchUrl, mutate}) => {
confirm_img: ""
},
validationSchema,
onSubmit: (values) => {
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
formData.append("approved_amount", values.approved_amount);
if (values.description != "") formData.append("expert_description", values.description);
Notifications(directionApp, t, undefined)
axios
.post(`${CONFIRM_PASSENGER_BOSS}/${rowId}`, formData, {
headers: {authorization: `Bearer ${token}`},
})
.then((response) => {
Notifications(directionApp, t, response);
mutate(fetchUrl)
formik.setSubmitting(false)
})
.catch((error) => {
Notifications(directionApp, t, error.response);
formik.setSubmitting(false)
});
requestServer(`${CONFIRM_PASSENGER_BOSS}/${rowId}`, 'post', {
data: formData,
}).then((response) => {
mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
},
});

View File

@@ -19,9 +19,7 @@ import UploadSystem from "@/core/components/UploadSystem";
import UploadFileNotification from "@/core/components/notifications/UploadFileNotification";
import useDirection from "@/lib/app/hooks/useDirection";
import ThumbDownIcon from "@mui/icons-material/ThumbDown";
import Notifications from "@/core/components/notifications";
import axios from "axios";
import useUser from "@/lib/app/hooks/useUser";
import useRequest from "@/lib/app/hooks/useRequest";
const Reject = ({rowId, fetchUrl, mutate}) => {
const [selectedImage, setSelectedImage] = useState("");
@@ -29,9 +27,9 @@ const Reject = ({rowId, fetchUrl, mutate}) => {
const [fileName, setfileName] = useState(null);
const [showAddIcon, setShowAddIcon] = useState(true);
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const [openRejectDialog, setOpenRejectDialog] = useState(false);
const requestServer = useRequest({auth: true})
const validationSchema = Yup.object().shape({
description: Yup.string().required(t("RejectDialog.description_error")),
@@ -43,23 +41,18 @@ const Reject = ({rowId, fetchUrl, mutate}) => {
reject_img: ""
},
validationSchema,
onSubmit: (values) => {
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
formData.append("expert_description", values.description);
Notifications(directionApp, t, undefined)
axios
.post(`${REJECT_PASSENGER_BOSS}/${rowId}`, formData, {
headers: {authorization: `Bearer ${token}`},
})
.then((response) => {
Notifications(directionApp, t, response);
mutate(fetchUrl)
formik.setSubmitting(false)
})
.catch((error) => {
Notifications(directionApp, t, error.response);
formik.setSubmitting(false)
});
requestServer(`${REJECT_PASSENGER_BOSS}/${rowId}`, 'post', {
data: formData,
}).then((response) => {
mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
},
});

View File

@@ -14,46 +14,39 @@ import {
} from "@mui/material";
import ThumbUpAltIcon from "@mui/icons-material/ThumbUpAlt";
import UploadSystem from "@/core/components/UploadSystem";
import useUser from "@/lib/app/hooks/useUser";
import useDirection from "@/lib/app/hooks/useDirection";
import axios from "axios";
import {useFormik} from "formik";
import UploadFileNotification from "@/core/components/notifications/UploadFileNotification";
import Notifications from "@/core/components/notifications";
import useRequest from "@/lib/app/hooks/useRequest";
import {CONFIRM_PASSENGER_OFFICE} from "@/core/data/apiRoutes";
const Confirm = ({rowId, fetchUrl, mutate}) => {
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const [selectedImage, setSelectedImage] = useState("");
const [fileType, setfileType] = useState(null);
const [fileName, setfileName] = useState(null);
const [showAddIcon, setShowAddIcon] = useState(true);
const [openConfirmDialog, setOpenConfirmDialog] = useState(false);
const requestServer = useRequest({auth: true})
const formik = useFormik({
initialValues: {
description: "",
confirm_img: ""
},
onSubmit: (values) => {
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
if (values.description != "") formData.append("expert_description", values.description);
Notifications(directionApp, t, undefined)
axios
.post(`${CONFIRM_PASSENGER_OFFICE}/${rowId}`, formData, {
headers: {authorization: `Bearer ${token}`},
})
.then((response) => {
Notifications(directionApp, t, response);
mutate(fetchUrl)
formik.setSubmitting(false)
})
.catch((error) => {
Notifications(directionApp, t, error.response);
formik.setSubmitting(false)
});
requestServer(`${CONFIRM_PASSENGER_OFFICE}/${rowId}`, 'post', {
data: formData,
}).then((response) => {
mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
},
});

View File

@@ -19,9 +19,7 @@ import UploadSystem from "@/core/components/UploadSystem";
import UploadFileNotification from "@/core/components/notifications/UploadFileNotification";
import useDirection from "@/lib/app/hooks/useDirection";
import ThumbDownIcon from "@mui/icons-material/ThumbDown";
import Notifications from "@/core/components/notifications";
import axios from "axios";
import useUser from "@/lib/app/hooks/useUser";
import useRequest from "@/lib/app/hooks/useRequest";
const Reject = ({rowId, fetchUrl, mutate}) => {
const [selectedImage, setSelectedImage] = useState("");
@@ -29,9 +27,9 @@ const Reject = ({rowId, fetchUrl, mutate}) => {
const [fileName, setfileName] = useState(null);
const [showAddIcon, setShowAddIcon] = useState(true);
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const [openRejectDialog, setOpenRejectDialog] = useState(false);
const requestServer = useRequest({auth: true})
const validationSchema = Yup.object().shape({
description: Yup.string().required(t("RejectDialog.description_error")),
@@ -43,23 +41,18 @@ const Reject = ({rowId, fetchUrl, mutate}) => {
reject_img: ""
},
validationSchema,
onSubmit: (values) => {
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
formData.append("expert_description", values.description);
Notifications(directionApp, t, undefined)
axios
.post(`${REJECT_PASSENGER_OFFICE}/${rowId}`, formData, {
headers: {authorization: `Bearer ${token}`},
})
.then((response) => {
Notifications(directionApp, t, response);
mutate(fetchUrl)
formik.setSubmitting(false)
})
.catch((error) => {
Notifications(directionApp, t, error.response);
formik.setSubmitting(false)
});
requestServer(`${REJECT_PASSENGER_OFFICE}/${rowId}`, 'post', {
data: formData,
}).then((response) => {
mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
},
});

View File

@@ -14,46 +14,39 @@ import {
} from "@mui/material";
import ThumbUpAltIcon from "@mui/icons-material/ThumbUpAlt";
import UploadSystem from "@/core/components/UploadSystem";
import useUser from "@/lib/app/hooks/useUser";
import useDirection from "@/lib/app/hooks/useDirection";
import axios from "axios";
import {useFormik} from "formik";
import UploadFileNotification from "@/core/components/notifications/UploadFileNotification";
import Notifications from "@/core/components/notifications";
import {CONFIRM_PROVINCE_MANAGER} from "@/core/data/apiRoutes";
import useRequest from "@/lib/app/hooks/useRequest";
const Confirm = ({rowId, fetchUrl, mutate}) => {
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const [selectedImage, setSelectedImage] = useState("");
const [fileType, setfileType] = useState(null);
const [fileName, setfileName] = useState(null);
const [showAddIcon, setShowAddIcon] = useState(true);
const [openConfirmDialog, setOpenConfirmDialog] = useState(false);
const requestServer = useRequest({auth: true})
const formik = useFormik({
initialValues: {
description: "",
confirm_img: ""
},
onSubmit: (values) => {
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
if (values.description != "") formData.append("expert_description", values.description);
Notifications(directionApp, t, undefined)
axios
.post(`${CONFIRM_PROVINCE_MANAGER}/${rowId}`, formData, {
headers: {authorization: `Bearer ${token}`},
})
.then((response) => {
Notifications(directionApp, t, response);
mutate(fetchUrl)
formik.setSubmitting(false)
})
.catch((error) => {
Notifications(directionApp, t, error.response);
formik.setSubmitting(false)
});
requestServer(`${CONFIRM_PROVINCE_MANAGER}/${rowId}`, 'post', {
data: formData,
}).then((response) => {
mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
},
});

View File

@@ -19,9 +19,7 @@ import UploadSystem from "@/core/components/UploadSystem";
import UploadFileNotification from "@/core/components/notifications/UploadFileNotification";
import useDirection from "@/lib/app/hooks/useDirection";
import ThumbDownIcon from "@mui/icons-material/ThumbDown";
import Notifications from "@/core/components/notifications";
import axios from "axios";
import useUser from "@/lib/app/hooks/useUser";
import useRequest from "@/lib/app/hooks/useRequest";
const Reject = ({rowId, fetchUrl, mutate}) => {
const [selectedImage, setSelectedImage] = useState("");
@@ -29,9 +27,9 @@ const Reject = ({rowId, fetchUrl, mutate}) => {
const [fileName, setfileName] = useState(null);
const [showAddIcon, setShowAddIcon] = useState(true);
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const [openRejectDialog, setOpenRejectDialog] = useState(false);
const requestServer = useRequest({auth: true})
const validationSchema = Yup.object().shape({
description: Yup.string().required(t("RejectDialog.description_error")),
@@ -43,23 +41,18 @@ const Reject = ({rowId, fetchUrl, mutate}) => {
reject_img: ""
},
validationSchema,
onSubmit: (values) => {
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
formData.append("expert_description", values.description);
Notifications(directionApp, t, undefined)
axios
.post(`${REJECT_PROVINCE_MANAGER}/${rowId}`, formData, {
headers: {authorization: `Bearer ${token}`},
})
.then((response) => {
Notifications(directionApp, t, response);
mutate(fetchUrl)
formik.setSubmitting(false)
})
.catch((error) => {
Notifications(directionApp, t, error.response);
formik.setSubmitting(false)
});
requestServer(`${REJECT_PROVINCE_MANAGER}/${rowId}`, 'post', {
data: formData,
}).then((response) => {
mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
},
});

View File

@@ -14,46 +14,39 @@ import {
} from "@mui/material";
import ThumbUpAltIcon from "@mui/icons-material/ThumbUpAlt";
import UploadSystem from "@/core/components/UploadSystem";
import useUser from "@/lib/app/hooks/useUser";
import useDirection from "@/lib/app/hooks/useDirection";
import axios from "axios";
import {useFormik} from "formik";
import UploadFileNotification from "@/core/components/notifications/UploadFileNotification";
import Notifications from "@/core/components/notifications";
import {CONFIRM_TRANSPORTATION_ASSISTANCE} from "@/core/data/apiRoutes";
import useRequest from "@/lib/app/hooks/useRequest";
const Confirm = ({rowId, fetchUrl, mutate}) => {
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const [selectedImage, setSelectedImage] = useState("");
const [fileType, setfileType] = useState(null);
const [fileName, setfileName] = useState(null);
const [showAddIcon, setShowAddIcon] = useState(true);
const [openConfirmDialog, setOpenConfirmDialog] = useState(false);
const requestServer = useRequest({auth: true})
const formik = useFormik({
initialValues: {
description: "",
confirm_img: ""
},
onSubmit: (values) => {
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
if (values.description != "") formData.append("expert_description", values.description);
Notifications(directionApp, t, undefined)
axios
.post(`${CONFIRM_TRANSPORTATION_ASSISTANCE}/${rowId}`, formData, {
headers: {authorization: `Bearer ${token}`},
})
.then((response) => {
Notifications(directionApp, t, response);
mutate(fetchUrl)
formik.setSubmitting(false)
})
.catch((error) => {
Notifications(directionApp, t, error.response);
formik.setSubmitting(false)
});
requestServer(`${CONFIRM_TRANSPORTATION_ASSISTANCE}/${rowId}`, 'post', {
data: formData,
}).then((response) => {
mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
},
});

View File

@@ -19,9 +19,7 @@ import UploadSystem from "@/core/components/UploadSystem";
import UploadFileNotification from "@/core/components/notifications/UploadFileNotification";
import useDirection from "@/lib/app/hooks/useDirection";
import ThumbDownIcon from "@mui/icons-material/ThumbDown";
import Notifications from "@/core/components/notifications";
import axios from "axios";
import useUser from "@/lib/app/hooks/useUser";
import useRequest from "@/lib/app/hooks/useRequest";
const Reject = ({rowId, fetchUrl, mutate}) => {
const [selectedImage, setSelectedImage] = useState("");
@@ -29,9 +27,9 @@ const Reject = ({rowId, fetchUrl, mutate}) => {
const [fileName, setfileName] = useState(null);
const [showAddIcon, setShowAddIcon] = useState(true);
const t = useTranslations();
const {token} = useUser();
const {directionApp} = useDirection();
const [openRejectDialog, setOpenRejectDialog] = useState(false);
const requestServer = useRequest({auth: true})
const validationSchema = Yup.object().shape({
description: Yup.string().required(t("RejectDialog.description_error")),
@@ -43,23 +41,18 @@ const Reject = ({rowId, fetchUrl, mutate}) => {
reject_img: ""
},
validationSchema,
onSubmit: (values) => {
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
formData.append("expert_description", values.description);
Notifications(directionApp, t, undefined)
axios
.post(`${REJECT_TRANSPORTATION_ASSISTANCE}/${rowId}`, formData, {
headers: {authorization: `Bearer ${token}`},
})
.then((response) => {
Notifications(directionApp, t, response);
mutate(fetchUrl)
formik.setSubmitting(false)
})
.catch((error) => {
Notifications(directionApp, t, error.response);
formik.setSubmitting(false)
});
requestServer(`${REJECT_TRANSPORTATION_ASSISTANCE}/${rowId}`, 'post', {
data: formData,
}).then((response) => {
mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
});
},
});

View File

@@ -5,22 +5,19 @@ import moment from "moment-jalaali";
import useSWR from "swr";
import {Typography} from "@mui/material";
import MaterialReactTable from "material-react-table";
import axios from "axios";
import useUser from "@/lib/app/hooks/useUser";
import useRequest from "@/lib/app/hooks/useRequest";
function DataTable(props) {
const {token} = useUser();
const requestServer = useRequest({auth: true})
const fetcher = (...args) => {
return axios
.get(args, {
headers: {
Authorization: `Bearer ${token}`,
},
})
.then((res) => {
setRowCount(res.data.meta.totalRowCount);
return res.data.data;
});
return requestServer(args, 'get', {
pending: false,
success: {notification: {show: false}}
}).then((response) => {
setRowCount(response.data.meta.totalRowCount);
return response.data.data;
}).catch(() => {
})
};
const t = useTranslations();
const {languageApp, languageList} = useLanguage();

View File

@@ -5,7 +5,7 @@ export const GET_USER_TOKEN = BASE_URL + "/dashboard/login";
//end login
//change password
export const CHANGE_PASSWORD = BASE_URL + "/dashboard/profile/change_password";
export const SET_USER_PASSWORD = BASE_URL + "/dashboard/profile/change_password";
//end change password
//user data