diff --git a/src/renderer/features/action-required/components/error-fallback.tsx b/src/renderer/features/action-required/components/error-fallback.tsx index 4f01fd99..71bee490 100644 --- a/src/renderer/features/action-required/components/error-fallback.tsx +++ b/src/renderer/features/action-required/components/error-fallback.tsx @@ -1,10 +1,9 @@ -import { Box, Center, Divider, Group, Stack } from '@mantine/core'; +import { Box, Center, Group, Stack } from '@mantine/core'; import type { FallbackProps } from 'react-error-boundary'; -import { RiErrorWarningLine, RiHomeFill, RiArrowLeftSLine } from 'react-icons/ri'; -import { useNavigate, useRouteError } from 'react-router'; +import { RiErrorWarningLine } from 'react-icons/ri'; +import { useRouteError } from 'react-router'; import styled from 'styled-components'; import { Button, Text } from '/@/renderer/components'; -import { AppRoute } from '/@/renderer/router/routes'; const Container = styled(Box)` background: var(--main-bg); @@ -36,62 +35,3 @@ export const ErrorFallback = ({ resetErrorBoundary }: FallbackProps) => { ); }; - -export const RouteErrorBoundary = () => { - const navigate = useNavigate(); - const error = useRouteError() as any; - console.log('error', error); - - const handleReload = () => { - navigate(0); - }; - - const handleReturn = () => { - navigate(-1); - }; - - const handleHome = () => { - navigate(AppRoute.HOME); - }; - - return ( - -
- - - - - Something went wrong - - - {error?.message} - - - - - -
-
- ); -}; diff --git a/src/renderer/features/action-required/components/route-error-boundary.tsx b/src/renderer/features/action-required/components/route-error-boundary.tsx new file mode 100644 index 00000000..7622e168 --- /dev/null +++ b/src/renderer/features/action-required/components/route-error-boundary.tsx @@ -0,0 +1,66 @@ +import { Container, Center, Stack, Group, Button, Divider } from '@mantine/core'; +import { RiArrowLeftSLine, RiErrorWarningLine, RiHomeFill } from 'react-icons/ri'; +import { useNavigate, useRouteError } from 'react-router'; +import { Text } from '/@/renderer/components'; +import { AppRoute } from '/@/renderer/router/routes'; + +const RouteErrorBoundary = () => { + const navigate = useNavigate(); + const error = useRouteError() as any; + console.log('error', error); + + const handleReload = () => { + navigate(0); + }; + + const handleReturn = () => { + navigate(-1); + }; + + const handleHome = () => { + navigate(AppRoute.HOME); + }; + + return ( + +
+ + + + + Something went wrong + + + {error?.message} + + + + + +
+
+ ); +}; + +export default RouteErrorBoundary; diff --git a/src/renderer/index.ejs b/src/renderer/index.ejs index f3599065..ca220526 100644 --- a/src/renderer/index.ejs +++ b/src/renderer/index.ejs @@ -4,6 +4,7 @@ + Feishin diff --git a/src/renderer/router/app-router.tsx b/src/renderer/router/app-router.tsx index f37d8fdd..18c8ea3a 100644 --- a/src/renderer/router/app-router.tsx +++ b/src/renderer/router/app-router.tsx @@ -6,10 +6,6 @@ import { createHashRouter, } from 'react-router-dom'; import { AppRoute } from './routes'; -import { RouteErrorBoundary } from '/@/renderer/features/action-required'; -import AlbumDetailRoute from '/@/renderer/features/albums/routes/album-detail-route'; -import AlbumArtistListRoute from '/@/renderer/features/artists/routes/album-artist-list-route'; -import HomeRoute from '/@/renderer/features/home/routes/home-route'; import { DefaultLayout } from '/@/renderer/layouts'; import { AppOutlet } from '/@/renderer/router/app-outlet'; import { TitlebarOutlet } from '/@/renderer/router/titlebar-outlet'; @@ -42,6 +38,20 @@ const InvalidRoute = lazy( () => import('/@/renderer/features/action-required/routes/invalid-route'), ); +const HomeRoute = lazy(() => import('/@/renderer/features/home/routes/home-route')); + +const AlbumArtistListRoute = lazy( + () => import('/@/renderer/features/artists/routes/album-artist-list-route'), +); + +const AlbumDetailRoute = lazy( + () => import('/@/renderer/features/albums/routes/album-detail-route'), +); + +const RouteErrorBoundary = lazy( + () => import('/@/renderer/features/action-required/components/route-error-boundary'), +); + export const AppRouter = () => { const router = createHashRouter( createRoutesFromElements(