Skip to content

Commit c0dc9ad

Browse files
authored
Merge pull request #728 from jembi/CU-86c19v2x6_Navigation-Breadcrumbs-missing
feat: add breadcrumb navigation to BasePageTemplate and update relate…
2 parents c3b53ab + 9cbb3c4 commit c0dc9ad

File tree

11 files changed

+60
-12
lines changed

11 files changed

+60
-12
lines changed

packages/base-components/BasePageTemplate.tsx

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,58 @@ import {
66
Button,
77
Card,
88
Divider,
9-
alpha
9+
alpha,
10+
Link
1011
} from '@mui/material'
12+
import Breadcrumbs from '@mui/material/Breadcrumbs'
1113

1214
interface BasePageTemplateProps {
1315
children: React.ReactNode | React.ReactNode[]
1416
title: string
1517
subtitle: string | React.ReactNode
1618
button?: React.ReactNode
19+
breadcrumbs?: Breadcrumb[]
20+
}
21+
22+
interface Breadcrumb {
23+
label: string
24+
href?: string
1725
}
1826

1927
export function BasePageTemplate({
2028
children,
2129
title,
2230
subtitle,
23-
button
31+
button,
32+
breadcrumbs
2433
}: BasePageTemplateProps) {
2534
return (
2635
<Box padding={1}>
2736
<Grid container padding={2} spacing={2}>
2837
<Grid item xs={12}>
38+
<Breadcrumbs aria-label="breadcrumb" sx={{marginBottom: '24px'}}>
39+
{breadcrumbs?.map(breadcrumb => {
40+
if (breadcrumb.href) {
41+
return (
42+
<Link
43+
underline="hover"
44+
sx={{
45+
color: '#049D84'
46+
}}
47+
key={breadcrumb.label}
48+
href={breadcrumb.href}
49+
>
50+
{breadcrumb.label}
51+
</Link>
52+
)
53+
}
54+
return (
55+
<Typography key={breadcrumb.label}>
56+
{breadcrumb.label}
57+
</Typography>
58+
)
59+
})}
60+
</Breadcrumbs>
2961
<Typography
3062
variant="h4"
3163
gutterBottom
@@ -40,6 +72,9 @@ export function BasePageTemplate({
4072
textAlign: 'left',
4173
display: 'inline-block',
4274
fontSmooth: 'never',
75+
...(breadcrumbs && {
76+
marginBottom: '24px'
77+
}),
4378
'-webkit-font-smoothing': 'antialiased',
4479
'-moz-osx-font-smoothing': 'grayscale'
4580
}}

packages/channels-app/src/screens/add.channel.screen.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ function AddChannelScreen() {
108108
<BasePageTemplate
109109
title="Add Channel"
110110
subtitle="Control client systems and their access roles. Add clients to enable their request routing and group them by roles for streamlined channel accesss managment."
111+
breadcrumbs={[{label: 'Channels', href: '/#!/channels'}, {label: 'Add'}]}
111112
>
112113
<Grid
113114
container

packages/channels-app/src/screens/edit.channel.screen.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ function EditChannelScreen() {
6565
<BasePageTemplate
6666
title="Edit Channel"
6767
subtitle="Control client systems and their access roles. Add clients to enable their request routing and group them by roles for streamlined channel accesss managment."
68+
breadcrumbs={[{label: 'Channels', href: '/#!/channels'}, {label: 'Edit'}]}
6869
>
6970
<Grid
7071
container

packages/client-roles-app/src/pages/client-role-form/client-role-form.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,10 @@ export const ClientRoleForm = () => {
165165
? pageHeadingTypography.editClientUserRole.caption
166166
: pageHeadingTypography.addClientUserRole.caption
167167
}
168+
breadcrumbs={[
169+
{label: 'Client Roles', href: '/#!/client-roles'},
170+
{label: existingClientRole ? 'Edit' : 'Add'}
171+
]}
168172
>
169173
<Card variant="outlined" sx={{margin: 'auto', maxWidth: 610}}>
170174
<Box sx={{margin: 1}} role="form" aria-label="Client Role Form">
@@ -174,8 +178,8 @@ export const ClientRoleForm = () => {
174178
label="Role Name"
175179
variant="outlined"
176180
helperText="Choose a short but descriptive name"
177-
aria-required="true"
178-
aria-describedby="role-name-helper-text"
181+
aria-required="true"
182+
aria-describedby="role-name-helper-text"
179183
value={clientRole.roleName}
180184
onChange={e => {
181185
setClientRole(prevClientRole => ({

packages/clients-app/src/pages/add-client/add-client.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import CryptoJS from 'crypto-js'
2525
import './style.css'
2626
import {AxiosError} from 'axios'
2727
import {useSnackbar} from 'notistack'
28-
import { BasePageTemplate } from '../../../../base-components'
28+
import {BasePageTemplate} from '../../../../base-components'
2929

3030
export const AddClient = () => {
3131
//TODO: Make sure that there is a safe guard when incrementing this value to prevent it from going over the number of steps
@@ -198,6 +198,7 @@ export const AddClient = () => {
198198
<BasePageTemplate
199199
title="Add Client"
200200
subtitle="Control client systems and their access roles. Add clients to enable their request routing and group them by roles for streamlined channel access management"
201+
breadcrumbs={[{label: 'Clients', href: '/#!/clients'}, {label: 'Add'}]}
201202
>
202203
<Grid item xs={12}>
203204
<Card variant="outlined" sx={{margin: 'auto', maxWidth: 610}}>

packages/clients-app/src/pages/clients-list/clients-list.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
1-
import {
2-
Button,
3-
Typography
4-
} from '@mui/material'
1+
import {Button, Typography} from '@mui/material'
52
import {Client} from '../../types'
6-
import {
7-
GridColDef,
8-
} from '@mui/x-data-grid'
3+
import {GridColDef} from '@mui/x-data-grid'
94
import {useEffect, useState} from 'react'
105
import {fetchClients, deleteClient} from '@jembi/openhim-core-api'
116
import CreateIcon from '@mui/icons-material/Create'

packages/clients-app/src/pages/edit-client/edit-client.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ const EditClient = () => {
202202
<BasePageTemplate
203203
title="Edit Client"
204204
subtitle="Control client systems and their access roles. Add clients to enable their request routing and group them by roles for streamlined channel access management"
205+
breadcrumbs={[{label: 'Clients', href: '/#!/clients'}, {label: 'Edit'}]}
205206
>
206207
<Grid item xs={12}>
207208
<Card sx={{width: 550, margin: 'auto'}}>

packages/rbac-app/src/screens/create.role.component.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ function AddUserRole() {
106106
<BasePageTemplate
107107
title="Add User Role"
108108
subtitle="Easily assign and manage roles and permissions to users by selecting a role, viewing and editing its permissions, or creating a new role with customized permissions."
109+
breadcrumbs={[
110+
{label: 'User Roles', href: '/#!/user-roles'},
111+
{label: 'Add'}
112+
]}
109113
>
110114
<Grid
111115
container

packages/rbac-app/src/screens/edit.role.component.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ function EditUserRole() {
107107
<BasePageTemplate
108108
title="Edit User Role"
109109
subtitle="Easily assign and manage roles and permissions to users by selecting a role, viewing and editing its permissions, or creating a new role with customized permissions."
110+
breadcrumbs={[
111+
{label: 'User Roles', href: '/#!/user-roles'},
112+
{label: 'Edit'}
113+
]}
110114
>
111115
<Grid
112116
container

packages/users-app/src/screens/create.user.component.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ function AddUserRole() {
7070
<BasePageTemplate
7171
title="Add User"
7272
subtitle="Control client systems and their access roles. Add clients to enable their request routing and group them by roles for streamlined channel management."
73+
breadcrumbs={[{label: 'Users', href: '/#!/users'}, {label: 'Add'}]}
7374
>
7475
<Grid
7576
container

packages/users-app/src/screens/edit.user.component.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ function AddUserRole() {
9090
<BasePageTemplate
9191
title="Edit User"
9292
subtitle="Control client systems and their access roles. Edit clients to enable their request routing and group them by roles for streamlined channel management."
93+
breadcrumbs={[{label: 'Users', href: '/#!/users'}, {label: 'Edit'}]}
9394
>
9495
<Grid
9596
container

0 commit comments

Comments
 (0)