Skip to content

Commit 7e1223e

Browse files
committed
ObjectPage: usePortal
1 parent 83e9f25 commit 7e1223e

File tree

2 files changed

+15
-121
lines changed

2 files changed

+15
-121
lines changed

packages/main/src/components/ObjectPage/ObjectPageAnchorBar.tsx

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { stopPropagation } from '../../internal/stopPropagation';
1717
import { StandardListItem } from '../../webComponents/StandardListItem';
1818
import { ObjectPageAnchorButton } from './ObjectPageAnchorButton';
1919
import { safeGetChildrenArray } from './ObjectPageUtils';
20+
import { createPortal } from 'react-dom';
2021

2122
addCustomCSS(
2223
'ui5-button',
@@ -195,17 +196,20 @@ const ObjectPageAnchorBar = forwardRef((props: Props, ref: RefObject<HTMLElement
195196
data-ui5wcr-object-page-header-action=""
196197
/>
197198
)}
198-
<Popover placementType={PlacementType.Bottom} noArrow ref={popoverRef} onAfterClose={stopPropagation}>
199-
<List onItemClick={onSubSectionClick}>
200-
{popoverContent?.props?.children
201-
.filter((item) => item.props && item.props.isSubSection)
202-
.map((item) => (
203-
<StandardListItem key={item.props.id} data-key={item.props.id}>
204-
{item.props.title}
205-
</StandardListItem>
206-
))}
207-
</List>
208-
</Popover>
199+
{createPortal(
200+
<Popover placementType={PlacementType.Bottom} noArrow ref={popoverRef} onAfterClose={stopPropagation}>
201+
<List onItemClick={onSubSectionClick}>
202+
{popoverContent?.props?.children
203+
.filter((item) => item.props && item.props.isSubSection)
204+
.map((item) => (
205+
<StandardListItem key={item.props.id} data-key={item.props.id}>
206+
{item.props.title}
207+
</StandardListItem>
208+
))}
209+
</List>
210+
</Popover>,
211+
document.body
212+
)}
209213
</section>
210214
);
211215
});

packages/main/src/components/ObjectPage/__snapshots__/ObjectPage.test.tsx.snap

Lines changed: 0 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -144,17 +144,6 @@ exports[`ObjectPage IconTabBar Mode 1`] = `
144144
design="Default"
145145
icon="slim-arrow-down"
146146
/>
147-
<ui5-popover
148-
horizontal-align="Center"
149-
no-arrow="true"
150-
placement-type="Bottom"
151-
vertical-align="Center"
152-
>
153-
<ui5-list
154-
mode="None"
155-
separators="All"
156-
/>
157-
</ui5-popover>
158147
</section>
159148
<section
160149
data-component-name="ObjectPageSection"
@@ -265,17 +254,6 @@ exports[`ObjectPage Just Some Sections 1`] = `
265254
text=""
266255
/>
267256
</ui5-tabcontainer>
268-
<ui5-popover
269-
horizontal-align="Center"
270-
no-arrow="true"
271-
placement-type="Bottom"
272-
vertical-align="Center"
273-
>
274-
<ui5-list
275-
mode="None"
276-
separators="All"
277-
/>
278-
</ui5-popover>
279257
</section>
280258
<section
281259
data-component-name="ObjectPageSection"
@@ -447,17 +425,6 @@ exports[`ObjectPage Key Infos 1`] = `
447425
text=""
448426
/>
449427
</ui5-tabcontainer>
450-
<ui5-popover
451-
horizontal-align="Center"
452-
no-arrow="true"
453-
placement-type="Bottom"
454-
vertical-align="Center"
455-
>
456-
<ui5-list
457-
mode="None"
458-
separators="All"
459-
/>
460-
</ui5-popover>
461428
</section>
462429
<section
463430
data-component-name="ObjectPageSection"
@@ -587,17 +554,6 @@ exports[`ObjectPage No Header 1`] = `
587554
text=""
588555
/>
589556
</ui5-tabcontainer>
590-
<ui5-popover
591-
horizontal-align="Center"
592-
no-arrow="true"
593-
placement-type="Bottom"
594-
vertical-align="Center"
595-
>
596-
<ui5-list
597-
mode="None"
598-
separators="All"
599-
/>
600-
</ui5-popover>
601557
</section>
602558
<section
603559
data-component-name="ObjectPageSection"
@@ -713,17 +669,6 @@ exports[`ObjectPage Not crashing with 0 sections 1`] = `
713669
tab-layout="Standard"
714670
tabs-placement="Top"
715671
/>
716-
<ui5-popover
717-
horizontal-align="Center"
718-
no-arrow="true"
719-
placement-type="Bottom"
720-
vertical-align="Center"
721-
>
722-
<ui5-list
723-
mode="None"
724-
separators="All"
725-
/>
726-
</ui5-popover>
727672
</section>
728673
</div>
729674
`;
@@ -801,17 +746,6 @@ exports[`ObjectPage Not crashing with 1 section - Default Mode 1`] = `
801746
text=""
802747
/>
803748
</ui5-tabcontainer>
804-
<ui5-popover
805-
horizontal-align="Center"
806-
no-arrow="true"
807-
placement-type="Bottom"
808-
vertical-align="Center"
809-
>
810-
<ui5-list
811-
mode="None"
812-
separators="All"
813-
/>
814-
</ui5-popover>
815749
</section>
816750
<section
817751
data-component-name="ObjectPageSection"
@@ -912,17 +846,6 @@ exports[`ObjectPage Not crashing with 1 section - IconTabBar Mode 1`] = `
912846
text=""
913847
/>
914848
</ui5-tabcontainer>
915-
<ui5-popover
916-
horizontal-align="Center"
917-
no-arrow="true"
918-
placement-type="Bottom"
919-
vertical-align="Center"
920-
>
921-
<ui5-list
922-
mode="None"
923-
separators="All"
924-
/>
925-
</ui5-popover>
926849
</section>
927850
<section
928851
data-component-name="ObjectPageSection"
@@ -1076,17 +999,6 @@ exports[`ObjectPage Only Sections 1`] = `
1076999
text="Test 3"
10771000
/>
10781001
</ui5-tabcontainer>
1079-
<ui5-popover
1080-
horizontal-align="Center"
1081-
no-arrow="true"
1082-
placement-type="Bottom"
1083-
vertical-align="Center"
1084-
>
1085-
<ui5-list
1086-
mode="None"
1087-
separators="All"
1088-
/>
1089-
</ui5-popover>
10901002
</section>
10911003
<section
10921004
data-component-name="ObjectPageSection"
@@ -1251,17 +1163,6 @@ exports[`ObjectPage Set selected section id 1`] = `
12511163
text=""
12521164
/>
12531165
</ui5-tabcontainer>
1254-
<ui5-popover
1255-
horizontal-align="Center"
1256-
no-arrow="true"
1257-
placement-type="Bottom"
1258-
vertical-align="Center"
1259-
>
1260-
<ui5-list
1261-
mode="None"
1262-
separators="All"
1263-
/>
1264-
</ui5-popover>
12651166
</section>
12661167
<section
12671168
data-component-name="ObjectPageSection"
@@ -1433,17 +1334,6 @@ exports[`ObjectPage With Subsections 1`] = `
14331334
design="Default"
14341335
icon="slim-arrow-down"
14351336
/>
1436-
<ui5-popover
1437-
horizontal-align="Center"
1438-
no-arrow="true"
1439-
placement-type="Bottom"
1440-
vertical-align="Center"
1441-
>
1442-
<ui5-list
1443-
mode="None"
1444-
separators="All"
1445-
/>
1446-
</ui5-popover>
14471337
</section>
14481338
<section
14491339
data-component-name="ObjectPageSection"

0 commit comments

Comments
 (0)