|
1 | 1 | import * as Sentry from "@sentry/react"; |
2 | | -import { BrowserRouter, Route, Routes } from "react-router-dom"; |
| 2 | +import { BrowserRouter, Navigate, Route, Routes } from "react-router-dom"; |
3 | 3 |
|
| 4 | +import { AxiosError } from "axios"; |
4 | 5 | import { Suspense } from "react"; |
5 | | -import { ErrorBoundary } from "react-error-boundary"; |
| 6 | +import { removeCookie } from "./api/cookie"; |
6 | 7 | import ConnectParentsAndTeacher from "./components/RegularLesson/ConnectParentsAndTeacher"; |
7 | 8 | import AfterSignup from "./components/welcomeSignup/AfterSignup"; |
8 | 9 | import AllowAlert from "./components/welcomeSignup/AllowAlert"; |
@@ -38,12 +39,17 @@ import TimePickerPage from "./pages/TimePickerPage"; |
38 | 39 | import TuitionPayment from "./pages/TuitionPayment"; |
39 | 40 | import WelcomeSignup from "./pages/WelcomeSignup"; |
40 | 41 | import PrivateRoute from "./utils/common/privateRoute"; |
| 42 | + interface fallbackProps { |
| 43 | + error: Error; |
| 44 | + resetError: () => void; |
| 45 | + } |
41 | 46 |
|
42 | 47 | export default function Router() { |
| 48 | + |
43 | 49 | return ( |
44 | 50 | <BrowserRouter> |
45 | 51 | <Sentry.ErrorBoundary fallback={fallbackRender}> |
46 | | - <ErrorBoundary FallbackComponent={fallbackRender}> |
| 52 | + {/* <ErrorBoundary FallbackComponent={fallbackRender}> */} |
47 | 53 | <Suspense fallback={<Loading />}> |
48 | 54 | <Routes> |
49 | 55 | <Route path="/" element={<OnBoarding />} /> |
@@ -85,20 +91,18 @@ export default function Router() { |
85 | 91 | </Route> |
86 | 92 | </Routes> |
87 | 93 | </Suspense> |
88 | | - </ErrorBoundary> |
| 94 | + {/* </ErrorBoundary> */} |
89 | 95 | </Sentry.ErrorBoundary> |
90 | 96 | </BrowserRouter> |
91 | 97 | ); |
92 | 98 | } |
93 | 99 |
|
94 | | -function fallbackRender({ error, resetErrorBoundary }: any) { |
95 | | - // if (error.response) { |
96 | | - // if (error.response.data.code === 401) { |
97 | | - // resetErrorBoundary(); |
98 | | - // removeCookie("accessToken"); |
99 | | - // return <Navigate to="/" />; |
100 | | - // } |
101 | | - // } else { |
102 | | - return <ErrorPage resetErrorBoundary={resetErrorBoundary} />; |
103 | | - // } |
| 100 | +function fallbackRender({ error, resetError }:fallbackProps) { |
| 101 | + if ( error instanceof AxiosError && error.response?.status === 401) { |
| 102 | + resetError(); |
| 103 | + removeCookie("accessToken"); |
| 104 | + return <Navigate to="/" />; |
| 105 | + } else { |
| 106 | + return <ErrorPage resetErrorBoundary={resetError} />; |
| 107 | + } |
104 | 108 | } |
0 commit comments