mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge pull request #6327 from thornbill/strict-mode-page
This commit is contained in:
commit
33b6106f26
2 changed files with 26 additions and 23 deletions
|
@ -1,4 +1,4 @@
|
||||||
import React, { type FC, type PropsWithChildren, type HTMLAttributes, useEffect, useRef } from 'react';
|
import React, { type FC, type PropsWithChildren, type HTMLAttributes, useEffect, useRef, StrictMode } from 'react';
|
||||||
|
|
||||||
import viewManager from './viewManager/viewManager';
|
import viewManager from './viewManager/viewManager';
|
||||||
|
|
||||||
|
@ -57,18 +57,20 @@ const Page: FC<PropsWithChildren<PageProps & HTMLAttributes<HTMLDivElement>>> =
|
||||||
}, [ element, isNowPlayingBarEnabled, isThemeMediaSupported ]);
|
}, [ element, isNowPlayingBarEnabled, isThemeMediaSupported ]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<StrictMode>
|
||||||
ref={element}
|
<div
|
||||||
id={id}
|
ref={element}
|
||||||
data-role='page'
|
id={id}
|
||||||
className={`page ${className}`}
|
data-role='page'
|
||||||
data-title={title}
|
className={`page ${className}`}
|
||||||
data-backbutton={isBackButtonEnabled}
|
data-title={title}
|
||||||
data-menubutton={isMenuButtonEnabled}
|
data-backbutton={isBackButtonEnabled}
|
||||||
data-backdroptype={backDropType}
|
data-menubutton={isMenuButtonEnabled}
|
||||||
>
|
data-backdroptype={backDropType}
|
||||||
{children}
|
>
|
||||||
</div>
|
{children}
|
||||||
|
</div>
|
||||||
|
</StrictMode>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import React, { StrictMode } from 'react';
|
|
||||||
import type { RouteObject } from 'react-router-dom';
|
import type { RouteObject } from 'react-router-dom';
|
||||||
|
|
||||||
export enum AsyncRouteType {
|
export enum AsyncRouteType {
|
||||||
|
@ -19,7 +18,7 @@ export interface AsyncRoute {
|
||||||
type?: AsyncRouteType
|
type?: AsyncRouteType
|
||||||
}
|
}
|
||||||
|
|
||||||
const importPage = (page: string, type: AsyncRouteType) => {
|
const importRoute = (page: string, type: AsyncRouteType) => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case AsyncRouteType.Dashboard:
|
case AsyncRouteType.Dashboard:
|
||||||
return import(/* webpackChunkName: "[request]" */ `../../apps/dashboard/routes/${page}`);
|
return import(/* webpackChunkName: "[request]" */ `../../apps/dashboard/routes/${page}`);
|
||||||
|
@ -38,14 +37,16 @@ export const toAsyncPageRoute = ({
|
||||||
return {
|
return {
|
||||||
path,
|
path,
|
||||||
lazy: async () => {
|
lazy: async () => {
|
||||||
const { default: Page } = await importPage(page ?? path, type);
|
const { default: route } = await importRoute(page ?? path, type);
|
||||||
return {
|
|
||||||
element: (
|
// If route is not a RouteObject, use it as the Component
|
||||||
<StrictMode>
|
if (!route.Component) {
|
||||||
<Page />
|
return {
|
||||||
</StrictMode>
|
Component: route
|
||||||
)
|
};
|
||||||
};
|
}
|
||||||
|
|
||||||
|
return route;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue