@@ -59,6 +59,10 @@ export interface AsideNavigationProps {
5959 menuItems ?: MenuItem [ ] ;
6060 content : React . ReactNode ;
6161 user ?: { login : string ; icon ?: IconData } ;
62+ renderFooterItems ?: (
63+ defaultFooterItems : React . ReactNode [ ] ,
64+ ctx : { compact : boolean ; asideRef : React . RefObject < HTMLDivElement > } ,
65+ ) => React . ReactNode [ ] ;
6266}
6367
6468enum Panel {
@@ -110,10 +114,11 @@ export function AsideNavigation(props: AsideNavigationProps) {
110114 onChangeCompact = { setIsCompact }
111115 className = { b ( ) }
112116 renderContent = { ( ) => props . content }
113- renderFooter = { ( { compact, asideRef} ) => (
114- < React . Fragment >
117+ renderFooter = { ( { compact : footerCompact , asideRef} ) => {
118+ const defaultFooterItems = [
115119 < FooterItem
116- compact = { compact }
120+ key = "information"
121+ compact = { footerCompact }
117122 item = { {
118123 id : 'information' ,
119124 title : i18n ( 'navigation-item.information' ) ,
@@ -125,9 +130,10 @@ export function AsideNavigation(props: AsideNavigationProps) {
125130 popupVisible = { informationPopupVisible }
126131 onClosePopup = { closeInformationPopup }
127132 renderPopupContent = { renderInformationPopup }
128- />
133+ /> ,
129134
130135 < FooterItem
136+ key = "user-settings"
131137 item = { {
132138 id : 'user-settings' ,
133139 title : i18n ( 'navigation-item.settings' ) ,
@@ -141,14 +147,30 @@ export function AsideNavigation(props: AsideNavigationProps) {
141147 ) ;
142148 } ,
143149 } }
144- compact = { compact }
145- />
146-
147- < UserDropdown isCompact = { compact } popupAnchor = { asideRef } user = { props . user } >
150+ compact = { footerCompact }
151+ /> ,
152+
153+ < UserDropdown
154+ key = "user-dropdown"
155+ isCompact = { footerCompact }
156+ popupAnchor = { asideRef }
157+ user = { props . user }
158+ >
148159 { props . ydbInternalUser }
149- </ UserDropdown >
150- </ React . Fragment >
151- ) }
160+ </ UserDropdown > ,
161+ ] ;
162+
163+ return (
164+ < React . Fragment >
165+ { props . renderFooterItems
166+ ? props . renderFooterItems ( defaultFooterItems , {
167+ compact : footerCompact ,
168+ asideRef,
169+ } )
170+ : defaultFooterItems }
171+ </ React . Fragment >
172+ ) ;
173+ } }
152174 panelItems = { [
153175 {
154176 id : 'user-settings' ,
0 commit comments