@@ -8,10 +8,13 @@ import { SessionProvider } from "next-auth/react";
88import { NextAdapter } from "next-query-params" ;
99import App , { AppContext , AppInitialProps , AppProps } from "next/app" ;
1010import Head from "next/head" ;
11+ import { useRouter } from "next/router" ;
1112import { QueryParamProvider } from "use-query-params" ;
1213
14+ import type { EuiSideNavItemType } from "@elastic/eui" ;
1315import { EuiProvider , EuiThemeColorMode } from "@elastic/eui" ;
1416import "@elastic/eui/dist/eui_theme_light.min.css" ;
17+
1518import {
1619 ColorModes ,
1720 ConfirmationDialogContextWrapper ,
@@ -20,6 +23,7 @@ import {
2023 StoreProvider ,
2124 WfoAuth ,
2225 WfoErrorBoundary ,
26+ WfoMenuItemLink ,
2327 WfoPageTemplate ,
2428 WfoToastsList ,
2529 defaultOrchestratorTheme ,
@@ -47,6 +51,7 @@ function CustomApp({
4751 pageProps,
4852 orchestratorConfig,
4953} : AppProps & AppOwnProps ) {
54+ const router = useRouter ( ) ;
5055 const [ queryClient ] = useState ( ( ) => new QueryClient ( queryClientConfig ) ) ;
5156
5257 const [ themeMode , setThemeMode ] = useState < EuiThemeColorMode > (
@@ -70,6 +75,25 @@ function CustomApp({
7075 }
7176 } , [ ] ) ;
7277
78+ const addMenuItems = (
79+ defaultMenuItems : EuiSideNavItemType < object > [ ]
80+ ) : EuiSideNavItemType < object > [ ] => [
81+ ...defaultMenuItems ,
82+ {
83+ name : "Example form" ,
84+ id : "10" ,
85+ isSelected : router . pathname === "/example-form" ,
86+ href : "/example-form" ,
87+ renderItem : ( ) => (
88+ < WfoMenuItemLink
89+ path = { "/example-form" }
90+ translationString = "Example form"
91+ isSelected = { router . pathname === "/example-form" }
92+ />
93+ ) ,
94+ } ,
95+ ] ;
96+
7397 return (
7498 < WfoErrorBoundary >
7599 < OrchestratorConfigProvider
@@ -105,6 +129,9 @@ function CustomApp({
105129 onThemeSwitch = {
106130 handleThemeSwitch
107131 }
132+ overrideMenuItems = {
133+ addMenuItems
134+ }
108135 >
109136 < QueryParamProvider
110137 adapter = {
0 commit comments