implementation error handler

This commit is contained in:
Amirhossein Mahmoodi
2023-08-09 13:41:14 +03:30
parent 929a7741a6
commit b17bc0136c
22 changed files with 214 additions and 48 deletions

View File

@@ -29,17 +29,17 @@ const ResendToken = ({initialTimerValue, timer, setTimer, PhoneNumber}) => {
const handleResendClick = async () => {
// work on it
if (timer != 0) return;
Notifications(directionApp, t, undefined);
Notifications(t, undefined);
await axios
.post(SEND_OTP_TOKEN, {
phone_number: PhoneNumber,
})
.then(function (response) {
Notifications(directionApp, t, response);
Notifications(t, response);
setTimer(initialTimerValue);
})
.catch(function (error) {
Notifications(directionApp, t, error.response);
Notifications(t, error.response);
});
};
// End Handle Resend Token

View File

@@ -2,7 +2,7 @@ import DangerousIcon from "@mui/icons-material/Dangerous";
import {Box, Typography} from "@mui/material";
import {toast} from "react-toastify";
const ErrorNotification = (directionApp, t, status, message) => {
const ErrorNotification = (t, status, message) => {
toast(
({closeToast}) => (
<>
@@ -29,7 +29,6 @@ const ErrorNotification = (directionApp, t, status, message) => {
</>
),
{
position: directionApp === "ltr" ? "top-left" : "top-right",
autoClose: false,
closeOnClick: false,
draggable: false,

View File

@@ -0,0 +1,11 @@
import {toast} from "react-toastify";
const PendingNotification = (t) => {
toast(t("notifications.pending"), {
autoClose: false,
closeOnClick: false,
draggable: false,
});
};
export default PendingNotification;

View File

@@ -2,7 +2,7 @@ import BeenhereIcon from "@mui/icons-material/Beenhere";
import {Box, Typography} from "@mui/material";
import {toast} from "react-toastify";
const SuccessNotification = (directionApp, t, status) => {
const SuccessNotification = (t, status) => {
toast(
() => (
<>
@@ -30,7 +30,6 @@ const SuccessNotification = (directionApp, t, status) => {
</>
),
{
position: directionApp === "ltr" ? "top-left" : "top-right",
autoClose: 3000,
hideProgressBar: true,
pauseOnHover: true,

View File

@@ -2,7 +2,7 @@ import ReportIcon from "@mui/icons-material/Report";
import {Box, Divider, Typography} from "@mui/material";
import {toast} from "react-toastify";
const WarningNotification = (directionApp, t, status) => {
const WarningNotification = (t, status) => {
toast(
({closeToast}) => (
<>
@@ -30,7 +30,6 @@ const WarningNotification = (directionApp, t, status) => {
</>
),
{
position: directionApp === "ltr" ? "top-left" : "top-right",
autoClose: false,
closeOnClick: false,
draggable: false,

View File

@@ -3,37 +3,36 @@ import ErrorNotification from "./ErrorNotification";
import SuccessNotification from "./SuccessNotification";
import WarningNotification from "./WarningNotification";
const Notifications = async (directionApp, t, response) => {
const Notifications = async (t, response) => {
const {status, data} = response != undefined ? response : ""
toast.dismiss();
switch (status) {
case 200:
SuccessNotification(directionApp, t, status);
SuccessNotification(t, status);
break;
case 400:
ErrorNotification(directionApp, t, status);
ErrorNotification(t, status);
break;
case 401:
ErrorNotification(directionApp, t, status);
ErrorNotification(t, status);
break;
case 403:
ErrorNotification(directionApp, t, status);
ErrorNotification(t, status);
break;
case 422:
ErrorNotification(directionApp, t, status, data.message);
ErrorNotification(t, status, data.message);
break;
case 500:
WarningNotification(directionApp, t, status);
WarningNotification(t, status);
break;
case 503:
WarningNotification(directionApp, t, status);
WarningNotification(t, status);
break;
case 504:
WarningNotification(directionApp, t, status);
WarningNotification(t, status);
break;
default:
toast(t("pending"), {
position: directionApp === "ltr" ? "top-left" : "top-right",
autoClose: false,
closeOnClick: false,
draggable: false,
@@ -47,9 +46,9 @@ export default Notifications;
/*
usage document
** for pending use ( Notifications(directionApp, t, undefined) ) this before your request.
** for success use ( Notifications(directionApp, t, response) ) this inside .then() of your request.
** for Error and Warning use ( Notifications(directionApp, t, error.response) ) this inside .catche() of your request.
** for pending use ( Notifications( t, undefined) ) this before your request.
** for success use ( Notifications( t, response) ) this inside .then() of your request.
** for Error and Warning use ( Notifications( t, error.response) ) this inside .catche() of your request.
end usage document
*/