/
dbataeva
/
tasksApp
Обзор
Документация
Войти
/
dbataeva
/
tasksApp
Код
Запросы
2
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
finalProject
appProject/src/app/Router/ErrorBoundary.tsx
41 строка
911 B
Daria Bataeva
refactor(task7): move code into appProject folder
26 окт 2025, 14:56
26 окт 2025, 14:56
489b5b2
Код
Авторство
О чём код?
import React, { FC, useEffect } from 'react'; import { isRouteErrorResponse, RouteObject, useNavigate, useRouteError, } from 'react-router'; import { NOT_FOUND } from 'shared/errorStatus'; import { PUBLIC_ROUTES } from 'shared/rotes'; import { protectedRoutes } from './browserRouter'; export const ErrorBoundary: FC = () => { const error = useRouteError(); const navigate = useNavigate(); const isRouteError = isRouteErrorResponse(error); useEffect(() => { if (!isRouteError) { return; } const errorData = error.data; if ( error.status === NOT_FOUND && typeof errorData === 'string' && protectedRoutes.some( (route: RouteObject) => route.path && errorData.includes(route.path) ) ) { navigate(PUBLIC_ROUTES.login, { replace: true }); } }, [error, isRouteError, navigate]); if (!isRouteError) { return <div>Oops</div>; } return <div>ErrorBoundary</div>; };