diff --git a/src/apps/dashboard/routes/_legacyRoutes.ts b/src/apps/dashboard/routes/_legacyRoutes.ts index 342a8ee65c..56e19ccc11 100644 --- a/src/apps/dashboard/routes/_legacyRoutes.ts +++ b/src/apps/dashboard/routes/_legacyRoutes.ts @@ -1,129 +1,151 @@ import type { LegacyRoute } from 'components/router/LegacyRoute'; +import { AppType } from 'constants/appType'; export const LEGACY_ADMIN_ROUTES: LegacyRoute[] = [ { path: '/dashboard', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/dashboard', view: 'dashboard/dashboard.html' } }, { path: 'settings', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/general', view: 'dashboard/general.html' } }, { path: 'networking', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/networking', view: 'dashboard/networking.html' } }, { path: 'devices', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/devices/devices', view: 'dashboard/devices/devices.html' } }, { path: 'devices/edit', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/devices/device', view: 'dashboard/devices/device.html' } }, { path: 'libraries', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/library', view: 'dashboard/library.html' } }, { path: 'libraries/display', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/librarydisplay', view: 'dashboard/librarydisplay.html' } }, { path: 'playback/transcoding', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/encodingsettings', view: 'dashboard/encodingsettings.html' } }, { path: 'libraries/metadata', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/metadataImages', view: 'dashboard/metadataimages.html' } }, { path: 'libraries/nfo', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/metadatanfo', view: 'dashboard/metadatanfo.html' } }, { path: 'playback/resume', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/playback', view: 'dashboard/playback.html' } }, { path: 'plugins/catalog', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/plugins/available/index', view: 'dashboard/plugins/available/index.html' } }, { path: 'plugins/repositories', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/plugins/repositories/index', view: 'dashboard/plugins/repositories/index.html' } }, { path: 'livetv/guide', pageProps: { + appType: AppType.Dashboard, controller: 'livetvguideprovider', view: 'livetvguideprovider.html' } }, { path: 'recordings', pageProps: { + appType: AppType.Dashboard, controller: 'livetvsettings', view: 'livetvsettings.html' } }, { path: 'livetv', pageProps: { + appType: AppType.Dashboard, controller: 'livetvstatus', view: 'livetvstatus.html' } }, { path: 'livetv/tuner', pageProps: { + appType: AppType.Dashboard, controller: 'livetvtuner', view: 'livetvtuner.html' } }, { path: 'plugins', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/plugins/installed/index', view: 'dashboard/plugins/installed/index.html' } }, { path: 'tasks/edit', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/scheduledtasks/scheduledtask', view: 'dashboard/scheduledtasks/scheduledtask.html' } }, { path: 'tasks', pageProps: { + appType: AppType.Dashboard, controller: 'dashboard/scheduledtasks/scheduledtasks', view: 'dashboard/scheduledtasks/scheduledtasks.html' } }, { path: 'playback/streaming', pageProps: { + appType: AppType.Dashboard, view: 'dashboard/streaming.html', controller: 'dashboard/streaming' } diff --git a/src/components/viewManager/ViewManagerPage.tsx b/src/components/viewManager/ViewManagerPage.tsx index efba34f2d6..3f6d258d98 100644 --- a/src/components/viewManager/ViewManagerPage.tsx +++ b/src/components/viewManager/ViewManagerPage.tsx @@ -6,8 +6,10 @@ import globalize from 'lib/globalize'; import type { RestoreViewFailResponse } from 'types/viewManager'; import viewManager from './viewManager'; +import { AppType } from 'constants/appType'; export interface ViewManagerPageProps { + appType?: AppType controller: string view: string type?: string @@ -31,7 +33,12 @@ interface ViewOptions { } } -const loadView = async (controller: string, view: string, viewOptions: ViewOptions) => { +const loadView = async ( + appType: AppType, + controller: string, + view: string, + viewOptions: ViewOptions +) => { const [ controllerFactory, viewHtml ] = await Promise.all([ import(/* webpackChunkName: "[request]" */ `../../controllers/${controller}`), import(/* webpackChunkName: "[request]" */ `../../controllers/${view}`) @@ -50,6 +57,7 @@ const loadView = async (controller: string, view: string, viewOptions: ViewOptio * NOTE: Any new pages should use the generic Page component instead. */ const ViewManagerPage: FunctionComponent = ({ + appType = AppType.Stable, controller, view, type, @@ -78,7 +86,7 @@ const ViewManagerPage: FunctionComponent = ({ if (navigationType !== Action.Pop) { console.debug('[ViewManagerPage] loading view [%s]', view); - return loadView(controller, view, viewOptions); + return loadView(appType, controller, view, viewOptions); } console.debug('[ViewManagerPage] restoring view [%s]', view); @@ -86,7 +94,7 @@ const ViewManagerPage: FunctionComponent = ({ .catch(async (result?: RestoreViewFailResponse) => { if (!result?.cancelled) { console.debug('[ViewManagerPage] restore failed; loading view [%s]', view); - return loadView(controller, view, viewOptions); + return loadView(appType, controller, view, viewOptions); } }); };