diff --git a/src/apps/experimental/AppOverrides.scss b/src/apps/experimental/AppOverrides.scss index fa586829e9..f6ea674428 100644 --- a/src/apps/experimental/AppOverrides.scss +++ b/src/apps/experimental/AppOverrides.scss @@ -17,6 +17,10 @@ $drawer-width: 240px; left: $drawer-width; } } +// The fallback page has no drawer +#fallbackPage { + left: 0; +} // Hide some items from the user "settings" page that are in the drawer #myPreferencesMenuPage { diff --git a/src/apps/experimental/routes/routes.tsx b/src/apps/experimental/routes/routes.tsx index 57161a9891..d0c5deab09 100644 --- a/src/apps/experimental/routes/routes.tsx +++ b/src/apps/experimental/routes/routes.tsx @@ -16,9 +16,11 @@ export const EXPERIMENTAL_APP_ROUTES: RouteObject[] = [ path: '/*', lazy: () => import('../AppLayout'), children: [ + { index: true, element: }, + { - /* User routes: Any child route of this layout is authenticated */ - element: , + /* User routes */ + Component: ConnectionRequired, children: [ ...ASYNC_USER_ROUTES.map(toAsyncPageRoute), ...LEGACY_USER_ROUTES.map(toViewManagerPageRoute), @@ -26,21 +28,26 @@ export const EXPERIMENTAL_APP_ROUTES: RouteObject[] = [ // The video page is special since it combines new controls with the legacy view { path: 'video', - element: + Component: VideoPage } ], ErrorBoundary }, - /* Public routes */ - { index: true, element: }, - ...LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute), - - /* Fallback route for invalid paths */ { - path: '*', - Component: FallbackRoute + /* Public routes */ + element: , + children: [ + ...LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute), + + /* Fallback route for invalid paths */ + { + path: '*', + Component: FallbackRoute + } + ] } + ] } ]; diff --git a/src/apps/stable/routes/routes.tsx b/src/apps/stable/routes/routes.tsx index 08bd56634e..f0e2718b27 100644 --- a/src/apps/stable/routes/routes.tsx +++ b/src/apps/stable/routes/routes.tsx @@ -17,9 +17,11 @@ export const STABLE_APP_ROUTES: RouteObject[] = [ path: '/*', Component: AppLayout, children: [ + { index: true, element: }, + { /* User routes */ - element: , + Component: ConnectionRequired, children: [ ...ASYNC_USER_ROUTES.map(toAsyncPageRoute), ...LEGACY_USER_ROUTES.map(toViewManagerPageRoute) @@ -27,15 +29,19 @@ export const STABLE_APP_ROUTES: RouteObject[] = [ ErrorBoundary }, - /* Public routes */ - { index: true, element: }, - ...LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute), - - /* Fallback route for invalid paths */ { - path: '*', - Component: FallbackRoute + /* Public routes */ + element: , + children: [ + ...LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute), + /* Fallback route for invalid paths */ + { + path: '*', + Component: FallbackRoute + } + ] } + ] } ]; diff --git a/src/components/router/FallbackRoute.tsx b/src/components/router/FallbackRoute.tsx index f438d730ad..24df3bb8d3 100644 --- a/src/components/router/FallbackRoute.tsx +++ b/src/components/router/FallbackRoute.tsx @@ -1,7 +1,6 @@ -import React, { useEffect, useMemo } from 'react'; +import React, { useMemo } from 'react'; import { Navigate, useLocation } from 'react-router-dom'; -import loading from 'components/loading/loading'; import Page from 'components/Page'; import globalize from 'lib/globalize'; import LinkButton from 'elements/emby-button/LinkButton'; @@ -9,10 +8,6 @@ import LinkButton from 'elements/emby-button/LinkButton'; const FallbackRoute = () => { const location = useLocation(); - useEffect(() => { - loading.hide(); - }, []); - // Check if the requested path should be redirected const to = useMemo(() => { const _to = { @@ -42,14 +37,16 @@ const FallbackRoute = () => { id='fallbackPage' className='mainAnimatedPage libraryPage' > -

{globalize.translate('HeaderPageNotFound')}

-

{globalize.translate('PageNotFound')}

- - {globalize.translate('GoHome')} - +
+

{globalize.translate('HeaderPageNotFound')}

+

{globalize.translate('PageNotFound')}

+ + {globalize.translate('GoHome')} + +
); };