@@ -32,8 +32,8 @@ function callOrString(stringOrTabFunction: StringOrTabFunction | undefined, tabT
32
32
}
33
33
34
34
// e.g.: Tab 1 | Tab 2 | Tab 3
35
- const TabNavbar = ( { singleLine, children, tabTitleClass, activeTab, changeTab} : TabsProps & { activeTab : number ; changeTab : ( i : number ) => void } ) => {
36
- return < Nav tabs className = { classNames ( "flex-wrap" , { "guaranteed-single-line" : singleLine } ) } >
35
+ const TabNavbar = ( { singleLine, children, tabTitleClass, activeTab, changeTab, className } : TabsProps & { activeTab : number ; changeTab : ( i : number ) => void ; } ) => {
36
+ return < Nav tabs className = { classNames ( className , "flex-wrap" , { "guaranteed-single-line" : singleLine } ) } >
37
37
{ Object . keys ( children ) . map ( ( tabTitle , mapIndex ) => {
38
38
const tabIndex = mapIndex + 1 ;
39
39
const linkClasses = callOrString ( tabTitleClass , tabTitle , tabIndex ) ;
@@ -129,7 +129,7 @@ export const Tabs = (props: TabsProps) => {
129
129
{ expandButton }
130
130
< div className = { classNames ( className , innerClasses , `tab-style-${ style } ` , "position-relative" ) } >
131
131
{ style === "tabs"
132
- ? < TabNavbar activeTab = { activeTab } changeTab = { changeTab } { ... props } > { children } </ TabNavbar >
132
+ ? < TabNavbar { ... props } className = "no-print" activeTab = { activeTab } changeTab = { changeTab } > { children } </ TabNavbar >
133
133
: style === "buttons"
134
134
? < ButtonNavbar activeTab = { activeTab } changeTab = { changeTab } { ...props } > { children } </ ButtonNavbar >
135
135
: < DropdownNavbar activeTab = { activeTab } changeTab = { changeTab } { ...props } > { children } </ DropdownNavbar >
@@ -138,9 +138,13 @@ export const Tabs = (props: TabsProps) => {
138
138
< TabContent activeTab = { activeTab } className = { tabContentClass } >
139
139
{ Object . entries ( children ) . map ( ( [ tabTitle , tabBody ] , mapIndex ) => {
140
140
const tabIndex = mapIndex + 1 ;
141
- return < TabPane key = { tabTitle } tabId = { tabIndex } >
142
- { tabBody as ReactNode }
143
- </ TabPane > ;
141
+ return < >
142
+ { /* This navbar exists only when printing so each tab has its own heading */ }
143
+ { style === "tabs" && < TabNavbar { ...props } className = { classNames ( "d-none d-print-flex mb-3 mt-2" , { "mt-n4" : mapIndex === 0 && tabContentClass . includes ( "pt-4" ) } ) } activeTab = { tabIndex } changeTab = { changeTab } > { children } </ TabNavbar > }
144
+ < TabPane key = { tabTitle } tabId = { tabIndex } >
145
+ { tabBody as ReactNode }
146
+ </ TabPane >
147
+ </ > ;
144
148
} ) }
145
149
</ TabContent >
146
150
</ ExpandableParentContext . Provider >
0 commit comments