From 93ef17a132d0bcc5f77242ad41aa577d2c1be5bc Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Thu, 23 Jan 2025 16:09:49 -0500 Subject: [PATCH] Refactor asyncRouteType to appType --- src/apps/dashboard/routes/_asyncRoutes.ts | 27 ++++++++++--------- src/apps/dashboard/routes/routes.tsx | 1 + .../experimental/routes/asyncRoutes/user.ts | 18 ++++++------- src/components/router/AsyncRoute.tsx | 23 +++++----------- src/constants/appType.ts | 8 ++++++ 5 files changed, 38 insertions(+), 39 deletions(-) create mode 100644 src/constants/appType.ts diff --git a/src/apps/dashboard/routes/_asyncRoutes.ts b/src/apps/dashboard/routes/_asyncRoutes.ts index f0c3e13586..eb42010cf3 100644 --- a/src/apps/dashboard/routes/_asyncRoutes.ts +++ b/src/apps/dashboard/routes/_asyncRoutes.ts @@ -1,16 +1,17 @@ -import { AsyncRouteType, type AsyncRoute } from 'components/router/AsyncRoute'; +import type { AsyncRoute } from 'components/router/AsyncRoute'; +import { AppType } from 'constants/appType'; export const ASYNC_ADMIN_ROUTES: AsyncRoute[] = [ - { path: 'activity', type: AsyncRouteType.Dashboard }, - { path: 'branding', type: AsyncRouteType.Dashboard }, - { path: 'keys', type: AsyncRouteType.Dashboard }, - { path: 'logs', type: AsyncRouteType.Dashboard }, - { path: 'playback/trickplay', type: AsyncRouteType.Dashboard }, - { path: 'plugins/:pluginId', page: 'plugins/plugin', type: AsyncRouteType.Dashboard }, - { path: 'users', type: AsyncRouteType.Dashboard }, - { path: 'users/access', type: AsyncRouteType.Dashboard }, - { path: 'users/add', type: AsyncRouteType.Dashboard }, - { path: 'users/parentalcontrol', type: AsyncRouteType.Dashboard }, - { path: 'users/password', type: AsyncRouteType.Dashboard }, - { path: 'users/profile', type: AsyncRouteType.Dashboard } + { path: 'activity', type: AppType.Dashboard }, + { path: 'branding', type: AppType.Dashboard }, + { path: 'keys', type: AppType.Dashboard }, + { path: 'logs', type: AppType.Dashboard }, + { path: 'playback/trickplay', type: AppType.Dashboard }, + { path: 'plugins/:pluginId', page: 'plugins/plugin', type: AppType.Dashboard }, + { path: 'users', type: AppType.Dashboard }, + { path: 'users/access', type: AppType.Dashboard }, + { path: 'users/add', type: AppType.Dashboard }, + { path: 'users/parentalcontrol', type: AppType.Dashboard }, + { path: 'users/password', type: AppType.Dashboard }, + { path: 'users/profile', type: AppType.Dashboard } ]; diff --git a/src/apps/dashboard/routes/routes.tsx b/src/apps/dashboard/routes/routes.tsx index bd7d926f03..576bdd6202 100644 --- a/src/apps/dashboard/routes/routes.tsx +++ b/src/apps/dashboard/routes/routes.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { RouteObject } from 'react-router-dom'; + import ConnectionRequired from 'components/ConnectionRequired'; import { ASYNC_ADMIN_ROUTES } from './_asyncRoutes'; import { toAsyncPageRoute } from 'components/router/AsyncRoute'; diff --git a/src/apps/experimental/routes/asyncRoutes/user.ts b/src/apps/experimental/routes/asyncRoutes/user.ts index 20af699bf1..7c9fd8ba5a 100644 --- a/src/apps/experimental/routes/asyncRoutes/user.ts +++ b/src/apps/experimental/routes/asyncRoutes/user.ts @@ -1,15 +1,15 @@ -import { AsyncRoute, AsyncRouteType } from '../../../../components/router/AsyncRoute'; +import { AsyncRoute } from 'components/router/AsyncRoute'; +import { AppType } from 'constants/appType'; export const ASYNC_USER_ROUTES: AsyncRoute[] = [ - { path: 'home.html', page: 'home', type: AsyncRouteType.Experimental }, + { path: 'home.html', page: 'home', type: AppType.Experimental }, { path: 'quickconnect', page: 'quickConnect' }, { path: 'search.html', page: 'search' }, { path: 'userprofile.html', page: 'user/userprofile' }, - { path: 'movies.html', page: 'movies', type: AsyncRouteType.Experimental }, - { path: 'tv.html', page: 'shows', type: AsyncRouteType.Experimental }, - { path: 'music.html', page: 'music', type: AsyncRouteType.Experimental }, - { path: 'livetv.html', page: 'livetv', type: AsyncRouteType.Experimental }, - { path: 'mypreferencesdisplay.html', page: 'user/display', type: AsyncRouteType.Experimental }, - - { path: 'homevideos.html', page: 'homevideos', type: AsyncRouteType.Experimental } + { path: 'movies.html', page: 'movies', type: AppType.Experimental }, + { path: 'tv.html', page: 'shows', type: AppType.Experimental }, + { path: 'music.html', page: 'music', type: AppType.Experimental }, + { path: 'livetv.html', page: 'livetv', type: AppType.Experimental }, + { path: 'mypreferencesdisplay.html', page: 'user/display', type: AppType.Experimental }, + { path: 'homevideos.html', page: 'homevideos', type: AppType.Experimental } ]; diff --git a/src/components/router/AsyncRoute.tsx b/src/components/router/AsyncRoute.tsx index c18cd05396..cab2144a1b 100644 --- a/src/components/router/AsyncRoute.tsx +++ b/src/components/router/AsyncRoute.tsx @@ -1,10 +1,6 @@ import type { RouteObject } from 'react-router-dom'; -export enum AsyncRouteType { - Stable, - Experimental, - Dashboard -} +import { AppType } from 'constants/appType'; export interface AsyncRoute { /** The URL path for this route. */ @@ -14,25 +10,18 @@ export interface AsyncRoute { * Will fallback to using the `path` value if not specified. */ page?: string - /** The page type used to load the correct page element. */ - type?: AsyncRouteType + /** The app that this page is part of. */ + type?: AppType } -const importRoute = (page: string, type: AsyncRouteType) => { - switch (type) { - case AsyncRouteType.Dashboard: - return import(/* webpackChunkName: "[request]" */ `../../apps/dashboard/routes/${page}`); - case AsyncRouteType.Experimental: - return import(/* webpackChunkName: "[request]" */ `../../apps/experimental/routes/${page}`); - case AsyncRouteType.Stable: - return import(/* webpackChunkName: "[request]" */ `../../apps/stable/routes/${page}`); - } +const importRoute = (page: string, type: AppType) => { + return import(/* webpackChunkName: "[request]" */ `../../apps/${type}/routes/${page}`); }; export const toAsyncPageRoute = ({ path, page, - type = AsyncRouteType.Stable + type = AppType.Stable }: AsyncRoute): RouteObject => { return { path, diff --git a/src/constants/appType.ts b/src/constants/appType.ts new file mode 100644 index 0000000000..efed1f5ffa --- /dev/null +++ b/src/constants/appType.ts @@ -0,0 +1,8 @@ +/** + * App types represented in src/apps. + */ +export enum AppType { + Dashboard = 'dashboard', + Experimental = 'experimental', + Stable = 'stable' +}