1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Fix ConnectionRequired missing for public routes

This commit is contained in:
Bill Thornton 2025-03-13 11:21:50 -04:00
parent 6f670d5c3e
commit 9c16515549
4 changed files with 46 additions and 32 deletions

View file

@ -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 {

View file

@ -16,9 +16,11 @@ export const EXPERIMENTAL_APP_ROUTES: RouteObject[] = [
path: '/*',
lazy: () => import('../AppLayout'),
children: [
{ index: true, element: <Navigate replace to='/home.html' /> },
{
/* User routes: Any child route of this layout is authenticated */
element: <ConnectionRequired isUserRequired />,
/* 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: <VideoPage />
Component: VideoPage
}
],
ErrorBoundary
},
/* Public routes */
{ index: true, element: <Navigate replace to='/home.html' /> },
...LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute),
/* Fallback route for invalid paths */
{
path: '*',
Component: FallbackRoute
/* Public routes */
element: <ConnectionRequired isUserRequired={false} />,
children: [
...LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute),
/* Fallback route for invalid paths */
{
path: '*',
Component: FallbackRoute
}
]
}
]
}
];

View file

@ -17,9 +17,11 @@ export const STABLE_APP_ROUTES: RouteObject[] = [
path: '/*',
Component: AppLayout,
children: [
{ index: true, element: <Navigate replace to='/home.html' /> },
{
/* User routes */
element: <ConnectionRequired isUserRequired />,
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: <Navigate replace to='/home.html' /> },
...LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute),
/* Fallback route for invalid paths */
{
path: '*',
Component: FallbackRoute
/* Public routes */
element: <ConnectionRequired isUserRequired={false} />,
children: [
...LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute),
/* Fallback route for invalid paths */
{
path: '*',
Component: FallbackRoute
}
]
}
]
}
];

View file

@ -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'
>
<h1>{globalize.translate('HeaderPageNotFound')}</h1>
<p>{globalize.translate('PageNotFound')}</p>
<LinkButton
className='button-link'
href='#/home.html'
>
{globalize.translate('GoHome')}
</LinkButton>
<div className='padded-left padded-right'>
<h1>{globalize.translate('HeaderPageNotFound')}</h1>
<p>{globalize.translate('PageNotFound')}</p>
<LinkButton
className='button-link'
href='#/home.html'
>
{globalize.translate('GoHome')}
</LinkButton>
</div>
</Page>
);
};