@@ -37,6 +37,12 @@ import { TopNavBarItem } from '../TopNavBar/TopNavBarItem'
3737import { CanvasTopNavProps } from './props'
3838import generateComponentTheme from './theme'
3939import TopNavBarContext from '../TopNavBar/TopNavBarContext'
40+ import {
41+ DeepPartial ,
42+ DrilldownTheme ,
43+ OptionsItemTheme ,
44+ TopNavBarItemTheme
45+ } from '@instructure/shared-types'
4046
4147/**
4248---
@@ -88,6 +94,7 @@ const CanvasTopNav = ({
8894 < Drilldown . Page
8995 key = { item . id }
9096 id = { item . id } //TODO renderbackbuttonlabel
97+ renderBackButtonLabel = { item ?. backButtonLabel }
9198 renderBeforeChildren = { item . renderBeforeMobileMenuItems }
9299 renderAfterChildren = { item . renderAfterMobileMenuItems }
93100 >
@@ -142,10 +149,10 @@ const CanvasTopNav = ({
142149 theme = { {
143150 componentOverrides : {
144151 'Options.Item' : {
145- ...styles . optionsOverride
152+ ...( styles . optionsOverride as DeepPartial < OptionsItemTheme > )
146153 } ,
147154 Drilldown : {
148- ...styles . drilldownOverride
155+ ...( styles . drilldownOverride as DeepPartial < DrilldownTheme > )
149156 }
150157 }
151158 } }
@@ -188,67 +195,75 @@ const CanvasTopNav = ({
188195 </ div >
189196 ) }
190197 { lti && (
191- < InstUISettingsProvider
192- theme = { {
193- componentOverrides : {
194- 'TopNavBar.Item' : {
195- ...styles . topNavBarItemOverride
198+ < div css = { styles . menuItems } >
199+ < InstUISettingsProvider
200+ theme = { {
201+ componentOverrides : {
202+ 'TopNavBar.Item' : {
203+ ...( styles . topNavBarItemOverride as DeepPartial < TopNavBarItemTheme > )
204+ }
196205 }
197- }
198- } }
199- >
200- < TopNavBarContext . Provider
201- value = { {
202- layout : 'desktop' ,
203- inverseColor : true
204206 } }
205207 >
206- < TopNavBarMenuItems
207- renderHiddenItemsMenuTriggerLabel = { ( ) => '' }
208- currentPageId = { currentPageId }
208+ < TopNavBarContext . Provider
209+ value = { {
210+ layout : 'desktop' ,
211+ inverseColor : true
212+ } }
209213 >
210- { menuItems ?. map ( ( item : any ) => (
211- < TopNavBarItem key = { item . id } id = { item . id } >
212- { item . title }
213- </ TopNavBarItem >
214- ) ) }
215- < TopNavBarItem
216- id = "submenu"
217- renderSubmenu = {
218- < Drilldown rootPageId = "root" >
219- < Drilldown . Page id = "root" >
220- < Drilldown . Option
221- id = "rootOption1"
222- subPageId = "secondPage"
223- >
224- Link One
225- </ Drilldown . Option >
226- < Drilldown . Option id = "rootOption2" href = "/#TopNavBar" >
227- Link Two
228- </ Drilldown . Option >
229- < Drilldown . Option id = "rootOption3" href = "/#TopNavBar" >
230- Link Three
231- </ Drilldown . Option >
232- </ Drilldown . Page >
233- < Drilldown . Page id = "secondPage" >
234- < Drilldown . Option id = "secondPageOption1" >
235- Level 2 Option One
236- </ Drilldown . Option >
237- < Drilldown . Option
238- id = "secondPageOption2"
239- href = "/#TopNavBar"
240- >
241- Level 2 Option Two
242- </ Drilldown . Option >
243- </ Drilldown . Page >
244- </ Drilldown >
245- }
214+ < TopNavBarMenuItems
215+ renderHiddenItemsMenuTriggerLabel = { ( ) => '' }
216+ currentPageId = { currentPageId }
246217 >
247- Submenu
248- </ TopNavBarItem >
249- </ TopNavBarMenuItems >
250- </ TopNavBarContext . Provider >
251- </ InstUISettingsProvider >
218+ { menuItems ?. map ( ( item : any ) => (
219+ < TopNavBarItem key = { item . id } id = { item . id } >
220+ { item . title }
221+ </ TopNavBarItem >
222+ ) ) }
223+ < TopNavBarItem
224+ id = "submenu"
225+ renderSubmenu = {
226+ < Drilldown rootPageId = "root" >
227+ < Drilldown . Page id = "root" >
228+ < Drilldown . Option
229+ id = "rootOption1"
230+ subPageId = "secondPage"
231+ >
232+ Link One
233+ </ Drilldown . Option >
234+ < Drilldown . Option
235+ id = "rootOption2"
236+ href = "/#TopNavBar"
237+ >
238+ Link Two
239+ </ Drilldown . Option >
240+ < Drilldown . Option
241+ id = "rootOption3"
242+ href = "/#TopNavBar"
243+ >
244+ Link Three
245+ </ Drilldown . Option >
246+ </ Drilldown . Page >
247+ < Drilldown . Page id = "secondPage" >
248+ < Drilldown . Option id = "secondPageOption1" >
249+ Level 2 Option One
250+ </ Drilldown . Option >
251+ < Drilldown . Option
252+ id = "secondPageOption2"
253+ href = "/#TopNavBar"
254+ >
255+ Level 2 Option Two
256+ </ Drilldown . Option >
257+ </ Drilldown . Page >
258+ </ Drilldown >
259+ }
260+ >
261+ Submenu
262+ </ TopNavBarItem >
263+ </ TopNavBarMenuItems >
264+ </ TopNavBarContext . Provider >
265+ </ InstUISettingsProvider >
266+ </ div >
252267 ) }
253268 </ DesktopTopNav . Start >
254269 < DesktopTopNav . End >
0 commit comments