diff --git a/packages/main/src/components/ObjectPage/ObjectPage.cy.tsx b/packages/main/src/components/ObjectPage/ObjectPage.cy.tsx index e7ccc502041..e02ac5a6729 100644 --- a/packages/main/src/components/ObjectPage/ObjectPage.cy.tsx +++ b/packages/main/src/components/ObjectPage/ObjectPage.cy.tsx @@ -1931,6 +1931,36 @@ describe('ObjectPage', () => { cy.findByText('Custom Header Section Two').should('not.be.visible'); cy.findByText('Subsection1').should('be.visible'); }); + + it('IconTabBar: header re-expands after tab switch when header was collapsed by scrolling', () => { + cy.viewport(1440, 900); + cy.mount( + + +
section 1 content
+
+ +
section 2 content
+
+
, + ); + cy.wait(50); + + // scroll down far enough to collapse the header + cy.findByTestId('op').scrollTo(0, 800); + cy.get('[data-component-name="ObjectPageHeaderContent"]').should('not.be.visible'); + + // switch tabs — header should re-expand and scroll should reset to top + cy.get('[ui5-tabcontainer]').findUi5TabByText('Section 2').click(); + cy.wait(600); + cy.get('[data-component-name="ObjectPageHeaderContent"]').should('be.visible'); + }); }); const DPTitle = ( diff --git a/packages/main/src/components/ObjectPage/index.tsx b/packages/main/src/components/ObjectPage/index.tsx index c980801409a..657fd4b237f 100644 --- a/packages/main/src/components/ObjectPage/index.tsx +++ b/packages/main/src/components/ObjectPage/index.tsx @@ -322,9 +322,9 @@ const ObjectPage = forwardRef((props, ref } return newSelectionSectionId; }); - // Reset scroll for section swap; scrollTimeout preserves current header collapsed/expanded state. if (mode === ObjectPageMode.IconTabBar) { scrollTimeout.current = performance.now() + 500; + setHeaderCollapsedInternal(false); objectPageRef.current?.scrollTo({ top: 0 }); } setTabSelectId(newSelectionSectionId); @@ -897,8 +897,7 @@ const ObjectPage = forwardRef((props, ref style={{ height: ((headerCollapsed && !headerPinned) || scrolledHeaderExpanded) && - !toggledCollapsedHeaderWasVisible && - !(mode === ObjectPageMode.IconTabBar && scrollTimeout.current >= performance.now()) + !toggledCollapsedHeaderWasVisible ? `${headerContentHeight}px` : 0, }}