Skip to content

Commit e65568b

Browse files
committed
Merge branch
Conflicts: src/apps/admin/src/admin-app.routes.tsx src/apps/admin/src/config/routes.config.ts src/apps/admin/src/lib/components/common/Layout/Layout.tsx src/apps/admin/src/lib/components/common/Tab/config/system-admin-tabs-config.ts
2 parents c83e21c + 433c8c1 commit e65568b

File tree

87 files changed

+174
-153
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+174
-153
lines changed

src/apps/admin/src/admin-app.routes.tsx

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { baseDetailPath, createBadgePath } from '~/apps/gamification-admin'
12
import { AppSubdomain, ToolTitle } from '~/config'
23
import {
34
lazyLoad,
@@ -9,14 +10,15 @@ import {
910

1011
import {
1112
billingAccountRouteId,
13+
gamificationAdminRouteId,
1214
manageChallengeRouteId,
1315
manageReviewRouteId,
1416
permissionManagementRouteId,
1517
platformRouteId,
1618
rootRoute,
1719
userManagementRouteId,
1820
} from './config/routes.config'
19-
import { platformSkillRouteId } from './platform-management/routes.config'
21+
import { platformSkillRouteId } from './platform/routes.config'
2022

2123
const AdminApp: LazyLoadedComponent = lazyLoad(() => import('./AdminApp'))
2224

@@ -109,16 +111,23 @@ const PermissionAddGroupMembersPage: LazyLoadedComponent = lazyLoad(
109111
'PermissionAddGroupMembersPage',
110112
)
111113

112-
const PlatformManagement: LazyLoadedComponent = lazyLoad(
113-
() => import('./platform-management/PlatformManagement'),
114-
)
114+
const Platform: LazyLoadedComponent = lazyLoad(() => import('./platform/Platform'))
115115
const SkillManagement: LazyLoadedComponent = lazyLoad(
116-
() => import('./platform-management/skill-management/SkillManagement'),
116+
() => import('./platform/skill-management/SkillManagement'),
117117
)
118118
const SkillManagementLandingPage: LazyLoadedComponent = lazyLoad(
119-
() => import('./platform-management/skill-management/LandingPage'),
119+
() => import('./platform/skill-management/LandingPage'),
120120
'LandingPage',
121121
)
122+
const BadgeDetailPage: LazyLoadedComponent = lazyLoad(
123+
() => import('../../gamification-admin/src/pages/badge-detail/BadgeDetailPage'),
124+
)
125+
const BadgeListingPage: LazyLoadedComponent = lazyLoad(
126+
() => import('../../gamification-admin/src/pages/badge-listing/BadgeListingPage'),
127+
)
128+
const CreateBadgePage: LazyLoadedComponent = lazyLoad(
129+
() => import('../../gamification-admin/src/pages/create-badge/CreateBadgePage'),
130+
)
122131

123132
export const toolTitle: string = ToolTitle.admin
124133

@@ -269,6 +278,7 @@ export const adminRoutes: ReadonlyArray<PlatformRoute> = [
269278
id: permissionManagementRouteId,
270279
route: permissionManagementRouteId,
271280
},
281+
272282
// Platform Management Module
273283
{
274284
children: [
@@ -284,8 +294,24 @@ export const adminRoutes: ReadonlyArray<PlatformRoute> = [
284294
id: platformSkillRouteId,
285295
route: platformSkillRouteId,
286296
},
297+
{
298+
element: (
299+
<BadgeListingPage
300+
rootPage={`${rootRoute}/${platformRouteId}/${gamificationAdminRouteId}`}
301+
/>
302+
),
303+
route: gamificationAdminRouteId,
304+
},
305+
{
306+
element: <CreateBadgePage />,
307+
route: `${gamificationAdminRouteId}${createBadgePath}`,
308+
},
309+
{
310+
element: <BadgeDetailPage />,
311+
route: `${gamificationAdminRouteId}${baseDetailPath}/:id`,
312+
},
287313
],
288-
element: <PlatformManagement />,
314+
element: <Platform />,
289315
id: platformRouteId,
290316
route: platformRouteId,
291317
},

src/apps/admin/src/config/routes.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ export const manageReviewRouteId = 'review-management'
1313
export const userManagementRouteId = 'user-management'
1414
export const billingAccountRouteId = 'billing-account'
1515
export const permissionManagementRouteId = 'permission-management'
16+
export const gamificationAdminRouteId = 'gamification-admin'
1617
export const platformRouteId = 'platform'

src/apps/admin/src/lib/components/common/Layout/Layout.module.scss

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@
1313
@include ltelg {
1414
padding: $sp-4;
1515
}
16+
17+
&.isPlatformPage {
18+
padding: 0;
19+
background-color: white;
20+
21+
@include ltelg {
22+
padding: 0;
23+
}
24+
}
1625
}
1726
}
1827

src/apps/admin/src/lib/components/common/Layout/Layout.tsx

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1+
12
import { FC, PropsWithChildren, useContext } from 'react'
23
import cn from 'classnames'
34

5+
import { platformRouteId } from '~/apps/admin/src/config/routes.config'
46
import { ContentLayout } from '~/libs/ui'
57
import { routerContext, RouterContextData } from '~/libs/core'
6-
import { platformRouteId } from '~/apps/admin/src/config/routes.config'
7-
import { platformSkillRouteId } from '~/apps/admin/src/platform-management/routes.config'
8+
import { platformSkillRouteId } from '~/apps/admin/src/platform/routes.config'
89
import { AppSubdomain, EnvironmentConfig } from '~/config'
910

1011
import { SystemAdminTabs } from '../Tab'
1112

1213
import styles from './Layout.module.scss'
1314

14-
export const NullLayout: FC<PropsWithChildren> = props => (
15-
<>{props.children}</>
16-
)
15+
export const NullLayout: FC<PropsWithChildren> = props => <>{props.children}</>
1716

1817
export type LayoutProps = PropsWithChildren<{
1918
classes?: { // eslint-disable-line react/no-unused-prop-types -- it's actually used
@@ -41,7 +40,13 @@ export const Layout: FC<LayoutProps> = props => (
4140
</ContentLayout>
4241
)
4342

44-
export const PlatformManagementSkillsLayout: FC<LayoutProps> = props => (
43+
export const PlatformLayout: FC<LayoutProps> = props => (
44+
<Layout classes={{ mainClass: styles.isPlatformPage }}>
45+
{props.children}
46+
</Layout>
47+
)
48+
49+
export const PlatformSkillsLayout: FC<LayoutProps> = props => (
4550
<Layout classes={{ contentClass: styles.platformSkillsContentLayout }}>
4651
{props.children}
4752
</Layout>
@@ -52,13 +57,22 @@ export function useLayout(): { Layout: FC<LayoutProps> } {
5257

5358
if (!routerContextData.initialized) return { Layout }
5459

60+
const platformBaseRouteId = EnvironmentConfig.SUBDOMAIN === AppSubdomain.admin
61+
? `/${platformRouteId}`
62+
: `/${AppSubdomain.admin}/${platformRouteId}`
63+
5564
const skillManagementRouteId = EnvironmentConfig.SUBDOMAIN === AppSubdomain.admin
5665
? `/${platformRouteId}/${platformSkillRouteId}`
5766
: `/${AppSubdomain.admin}/${platformRouteId}/${platformSkillRouteId}`
5867

5968
if (window.location.pathname.toLowerCase()
6069
.startsWith(skillManagementRouteId.toLowerCase())) {
61-
return { Layout: PlatformManagementSkillsLayout }
70+
return { Layout: PlatformSkillsLayout }
71+
}
72+
73+
if (window.location.pathname.toLowerCase()
74+
.startsWith(platformBaseRouteId.toLowerCase())) {
75+
return { Layout: PlatformLayout }
6276
}
6377

6478
return { Layout }

src/apps/admin/src/lib/components/common/Tab/config/system-admin-tabs-config.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ import _ from 'lodash'
33
import { TabsNavItem } from '~/libs/ui'
44
import {
55
billingAccountRouteId,
6+
gamificationAdminRouteId,
67
manageChallengeRouteId,
78
manageReviewRouteId,
89
permissionManagementRouteId,
910
platformRouteId,
1011
userManagementRouteId,
1112
} from '~/apps/admin/src/config/routes.config'
12-
import { platformSkillRouteId } from '~/apps/admin/src/platform-management/routes.config'
13+
import { platformSkillRouteId } from '~/apps/admin/src/platform/routes.config'
1314

1415
export const SystemAdminTabsConfig: TabsNavItem[] = [
1516
{
@@ -55,9 +56,15 @@ export const SystemAdminTabsConfig: TabsNavItem[] = [
5556
{
5657
children: [
5758
{
59+
5860
id: `${platformRouteId}/${platformSkillRouteId}`,
5961
title: 'Skills',
6062
},
63+
{
64+
id: `${platformRouteId}/${gamificationAdminRouteId}`,
65+
title: 'Badges',
66+
67+
},
6168
],
6269
id: platformRouteId,
6370
title: 'Platform',
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* Wrapper for permission managment
3+
*/
4+
import { FC, useContext, useMemo } from 'react'
5+
import { Outlet, Routes } from 'react-router-dom'
6+
7+
import { routerContext, RouterContextData } from '~/libs/core'
8+
9+
import { adminRoutes } from '../admin-app.routes'
10+
import { platformRouteId } from '../config/routes.config'
11+
12+
/**
13+
* The router outlet with layout.
14+
*/
15+
export const Platform: FC = () => {
16+
const childRoutes = useChildRoutes()
17+
18+
return (
19+
<>
20+
<Outlet />
21+
<Routes>{childRoutes}</Routes>
22+
</>
23+
)
24+
}
25+
26+
function useChildRoutes(): Array<JSX.Element> | undefined {
27+
const { getRouteElement }: RouterContextData = useContext(routerContext)
28+
const childRoutes = useMemo(
29+
() => adminRoutes[0].children
30+
?.find(r => r.id === platformRouteId)
31+
?.children?.map(getRouteElement),
32+
[], // eslint-disable-line react-hooks/exhaustive-deps -- missing dependency: getRouteElement
33+
)
34+
return childRoutes
35+
}
36+
37+
export default Platform

0 commit comments

Comments
 (0)