@@ -23,6 +23,7 @@ import type { AvatarPropTypes } from '../../webComponents/index.js';
23
23
import { Tab , TabContainer } from '../../webComponents/index.js' ;
24
24
import { DynamicPageCssVariables } from '../DynamicPage/DynamicPage.jss.js' ;
25
25
import { DynamicPageAnchorBar } from '../DynamicPageAnchorBar/index.js' ;
26
+ import { DynamicPageHeader } from '../DynamicPageHeader/index.js' ;
26
27
import type { ObjectPageSectionPropTypes } from '../ObjectPageSection/index.js' ;
27
28
import { CollapsedAvatar } from './CollapsedAvatar.js' ;
28
29
import { styles } from './ObjectPage.jss.js' ;
@@ -200,6 +201,7 @@ const ObjectPage = forwardRef<HTMLDivElement, ObjectPagePropTypes>((props, ref)
200
201
const [ scrolledHeaderExpanded , setScrolledHeaderExpanded ] = useState ( false ) ;
201
202
const scrollTimeout = useRef ( 0 ) ;
202
203
const [ spacerBottomHeight , setSpacerBottomHeight ] = useState ( '0px' ) ;
204
+ const titleInHeader = headerTitle && showTitleInHeaderContent ;
203
205
204
206
const prevInternalSelectedSectionId = useRef ( internalSelectedSectionId ) ;
205
207
const fireOnSelectedChangedEvent = ( targetEvent , index , id , section ) => {
@@ -658,22 +660,36 @@ const ObjectPage = forwardRef<HTMLDivElement, ObjectPagePropTypes>((props, ref)
658
660
children : (
659
661
< div className = { classes . headerContainer } data-component-name = "ObjectPageHeaderContainer" >
660
662
{ avatar }
661
- { headerContent . props . children && (
663
+ { ( headerContent . props . children || titleInHeader ) && (
662
664
< div data-component-name = "ObjectPageHeaderContent" >
663
- { headerTitle && showTitleInHeaderContent && renderTitleSection ( true ) }
665
+ { titleInHeader && renderTitleSection ( true ) }
664
666
{ headerContent . props . children }
665
667
</ div >
666
668
) }
667
669
</ div >
668
670
)
669
671
} ) ;
672
+ } else if ( titleInHeader ) {
673
+ return (
674
+ < DynamicPageHeader
675
+ topHeaderHeight = { topHeaderHeight }
676
+ style = { headerCollapsed === true ? { position : 'absolute' , visibility : 'hidden' } : undefined }
677
+ headerPinned = { headerPinned || scrolledHeaderExpanded }
678
+ ref = { componentRefHeaderContent }
679
+ >
680
+ < div className = { classes . headerContainer } data-component-name = "ObjectPageHeaderContainer" >
681
+ { avatar }
682
+ < div data-component-name = "ObjectPageHeaderContent" > { titleInHeader && renderTitleSection ( true ) } </ div >
683
+ </ div >
684
+ </ DynamicPageHeader >
685
+ ) ;
670
686
}
671
687
} , [
672
688
headerContent ,
673
689
topHeaderHeight ,
674
690
headerPinned ,
675
691
scrolledHeaderExpanded ,
676
- showTitleInHeaderContent ,
692
+ titleInHeader ,
677
693
avatar ,
678
694
headerContentRef ,
679
695
renderTitleSection
@@ -743,7 +759,7 @@ const ObjectPage = forwardRef<HTMLDivElement, ObjectPagePropTypes>((props, ref)
743
759
) ;
744
760
745
761
const objectPageStyles = { ...style } ;
746
- if ( headerCollapsed === true && headerContent ) {
762
+ if ( headerCollapsed === true && ( headerContent || titleInHeader ) ) {
747
763
objectPageStyles [ DynamicPageCssVariables . titleFontSize ] = ThemingParameters . sapObjectHeader_Title_SnappedFontSize ;
748
764
}
749
765
0 commit comments