Skip to content

Commit c5ac068

Browse files
authored
Merge pull request #2381 from JohnDuprey/dev
Frontend fixes
2 parents 90e6c2d + 58377de commit c5ac068

File tree

4 files changed

+89
-75
lines changed

4 files changed

+89
-75
lines changed

src/App.jsx

Lines changed: 53 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import React, { Suspense } from 'react'
2-
import { BrowserRouter, Route, Routes, Navigate } from 'react-router-dom'
2+
import { BrowserRouter, Route, Routes, Navigate, useLocation } from 'react-router-dom'
33
import { PrivateRoute, FullScreenLoading, ErrorBoundary } from 'src/components/utilities'
44
import 'src/scss/style.scss'
5-
import { Helmet } from 'react-helmet-async'
5+
import { Helmet, HelmetProvider } from 'react-helmet-async'
66
import Skeleton from 'react-loading-skeleton'
77
import TimeAgo from 'javascript-time-ago'
88
import en from 'javascript-time-ago/locale/en.json'
99
TimeAgo.addDefaultLocale(en)
1010
import { library } from '@fortawesome/fontawesome-svg-core'
1111
import { fas } from '@fortawesome/free-solid-svg-icons'
1212
import routes from 'src/routes'
13-
import { useAuthCheck } from './components/utilities/CippauthCheck'
1413
import importsMap from './importsMap'
1514

1615
library.add(fas)
@@ -32,59 +31,58 @@ const Logout = React.lazy(() => import('./views/pages/login/Logout'))
3231
const App = () => {
3332
return (
3433
<BrowserRouter>
35-
<Suspense fallback={<FullScreenLoading />}>
36-
<Helmet>
37-
<title>CIPP</title>
38-
</Helmet>
39-
<Routes>
40-
<Route exact path="/LogoutRedirect" name="LogoutRedirect" element={<PageLogOut />} />
41-
<Route exact path="/401" name="Page 401" element={<Page401 />} />
42-
<Route exact path="/403" name="Page 403" element={<Page403 />} />
43-
<Route exact path="/404" name="Page 404" element={<Page404 />} />
44-
<Route exact path="/500" name="Page 500" element={<Page500 />} />
45-
<Route exact path="/login" name="Login" element={<Login />} />
46-
<Route exact path="/logout" name="Logout" element={<Logout />} />
47-
<Route
48-
path="/"
49-
element={
50-
<PrivateRoute>
51-
<DefaultLayout />
52-
</PrivateRoute>
53-
}
54-
>
55-
{routes.map((route, idx) => {
56-
const allowedRoles = route.allowedRoles
57-
const Routecomponent = dynamicImport(route.path)
58-
//console.log('route', route)
59-
//console.log('Routecomponent', Routecomponent)
60-
return (
61-
route.component && (
62-
<Route
63-
key={`route-${idx}`}
64-
path={route.path}
65-
exact={route.exact}
66-
name={route.name}
67-
element={
68-
<PrivateRoute allowedRoles={allowedRoles}>
69-
<Suspense fallback={<Skeleton />}>
70-
<Helmet>
71-
<title>CIPP - {route.name}</title>
72-
</Helmet>
73-
<ErrorBoundary key={route.name}>
74-
<Routecomponent />
75-
</ErrorBoundary>
76-
</Suspense>
77-
</PrivateRoute>
78-
}
79-
/>
34+
<HelmetProvider>
35+
<Suspense fallback={<FullScreenLoading />}>
36+
<Helmet>
37+
<title>CIPP</title>
38+
</Helmet>
39+
<Routes>
40+
<Route exact path="/LogoutRedirect" name="LogoutRedirect" element={<PageLogOut />} />
41+
<Route exact path="/401" name="Page 401" element={<Page401 />} />
42+
<Route exact path="/403" name="Page 403" element={<Page403 />} />
43+
<Route exact path="/404" name="Page 404" element={<Page404 />} />
44+
<Route exact path="/500" name="Page 500" element={<Page500 />} />
45+
<Route exact path="/login" name="Login" element={<Login />} />
46+
<Route exact path="/logout" name="Logout" element={<Logout />} />
47+
<Route
48+
path="/"
49+
element={
50+
<PrivateRoute>
51+
<DefaultLayout />
52+
</PrivateRoute>
53+
}
54+
>
55+
{routes.map((route, idx) => {
56+
const allowedRoles = route.allowedRoles
57+
const Routecomponent = dynamicImport(route.path)
58+
//console.log('route', route)
59+
//console.log('Routecomponent', Routecomponent)
60+
return (
61+
route.component && (
62+
<Route
63+
key={`route-${idx}`}
64+
path={route.path}
65+
exact={route.exact}
66+
name={route.name}
67+
element={
68+
<PrivateRoute allowedRoles={allowedRoles}>
69+
<Suspense fallback={<Skeleton />}>
70+
<ErrorBoundary key={route.name}>
71+
<Routecomponent />
72+
</ErrorBoundary>
73+
</Suspense>
74+
</PrivateRoute>
75+
}
76+
/>
77+
)
8078
)
81-
)
82-
})}
83-
<Route path="/" element={<Navigate to="/home" replace={true} />} />
84-
</Route>
85-
<Route path="*" name="Page 404" element={<Page404 />} />
86-
</Routes>
87-
</Suspense>
79+
})}
80+
<Route path="/" element={<Navigate to="/home" replace={true} />} />
81+
</Route>
82+
<Route path="*" name="Page 404" element={<Page404 />} />
83+
</Routes>
84+
</Suspense>
85+
</HelmetProvider>
8886
</BrowserRouter>
8987
)
9088
}

src/hooks/useNavFavouriteCheck.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export const useNavFavouriteCheck = (navigation) => {
2828
var items = []
2929

3030
recentPages.map((path) => {
31-
const item = routes.find((route) => route.path === path)
31+
const item = routes.find((route) => route.path.toLowerCase() === path.toLowerCase())
3232
if (item?.path) {
3333
items.push({
3434
name: item.name,

src/layout/DefaultLayout.jsx

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import { toggleSwitcher } from 'src/store/features/switcher'
88
import { useHotkeys } from 'react-hotkeys-hook'
99
import { useMediaPredicate } from 'react-media-hook'
1010
import { setRecentPages } from 'src/store/features/app'
11+
import routes from 'src/routes'
12+
import { Helmet } from 'react-helmet-async'
1113

1214
const DefaultLayout = () => {
1315
const preferredTheme = useMediaPredicate('(prefers-color-scheme: dark)') ? 'impact' : 'cyberdrain'
@@ -17,6 +19,15 @@ const DefaultLayout = () => {
1719
const dispatch = useDispatch()
1820
const location = useLocation()
1921

22+
const [title, setTitle] = useState('CIPP')
23+
useEffect(() => {
24+
let route = routes.find((route) => route.path.toLowerCase() === location.pathname.toLowerCase())
25+
if (route?.name) {
26+
console.log(route)
27+
setTitle(route.name)
28+
}
29+
}, [setTitle, location.pathname])
30+
2031
let theme
2132
if (themePreference === 'default') {
2233
theme = preferredTheme
@@ -70,24 +81,29 @@ const DefaultLayout = () => {
7081
)
7182

7283
return (
73-
<div>
74-
<FastSwitcherModal />
75-
<ModalRoot />
76-
<Toasts />
84+
<>
85+
<Helmet>
86+
<title>CIPP - {title}</title>
87+
</Helmet>
88+
<div>
89+
<FastSwitcherModal />
90+
<ModalRoot />
91+
<Toasts />
7792

78-
<AppSidebar />
79-
<div className="wrapper d-flex flex-column min-vh-100">
80-
<AppHeader />
81-
<div className="body flex-grow-1 px-xl-3">
82-
<CContainer fluid>
83-
<Suspense fallback={<FullScreenLoading />}>
84-
<Outlet />
85-
</Suspense>
86-
</CContainer>
93+
<AppSidebar />
94+
<div className="wrapper d-flex flex-column min-vh-100">
95+
<AppHeader />
96+
<div className="body flex-grow-1 px-xl-3">
97+
<CContainer fluid>
98+
<Suspense fallback={<FullScreenLoading />}>
99+
<Outlet />
100+
</Suspense>
101+
</CContainer>
102+
</div>
103+
<AppFooter />
87104
</div>
88-
<AppFooter />
89105
</div>
90-
</div>
106+
</>
91107
)
92108
}
93109

src/views/email-exchange/tools/MailTest.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,22 @@ const MailTest = () => {
4040
},
4141
{
4242
name: 'SPF',
43-
selector: (row) => row?.AuthResult.filter((x) => x?.Name === 'spf')[0].Status == 'pass',
43+
selector: (row) => row?.AuthResult.filter((x) => x?.Name === 'spf')[0]?.Status == 'pass',
4444
cell: cellBooleanFormatter(),
4545
},
4646
{
4747
name: 'DKIM',
48-
selector: (row) => row?.AuthResult.filter((x) => x?.Name === 'dkim')[0].Status == 'pass',
48+
selector: (row) => row?.AuthResult.filter((x) => x?.Name === 'dkim')[0]?.Status == 'pass',
4949
cell: cellBooleanFormatter(),
5050
},
5151
{
5252
name: 'DMARC',
53-
selector: (row) => row?.AuthResult.filter((x) => x?.Name === 'dmarc')[0].Status == 'pass',
53+
selector: (row) => row?.AuthResult.filter((x) => x?.Name === 'dmarc')[0]?.Status == 'pass',
5454
cell: cellBooleanFormatter(),
5555
},
5656
{
5757
name: 'Comp Auth',
58-
selector: (row) => row?.AuthResult.filter((x) => x?.Name === 'compauth')[0].Status == 'pass',
58+
selector: (row) => row?.AuthResult.filter((x) => x?.Name === 'compauth')[0]?.Status == 'pass',
5959
cell: cellBooleanFormatter(),
6060
},
6161
{

0 commit comments

Comments
 (0)