Skip to content

Commit 9d77135

Browse files
committed
VariantManagement: use portal into body
1 parent a5737c3 commit 9d77135

File tree

2 files changed

+25
-93
lines changed

2 files changed

+25
-93
lines changed

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

Lines changed: 0 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -15,42 +15,6 @@ exports[`VariantManagement Render without crashing - disabled 1`] = `
1515
disabled="true"
1616
icon="navigation-down-arrow"
1717
/>
18-
<ui5-responsive-popover
19-
header-text="Variants"
20-
horizontal-align="Center"
21-
placement-type="Bottom"
22-
vertical-align="Center"
23-
>
24-
<ui5-button
25-
class="VariantManagement-footer-0"
26-
design="Emphasized"
27-
slot="footer"
28-
>
29-
Cancel
30-
</ui5-button>
31-
<ui5-list
32-
mode="SingleSelect"
33-
separators="All"
34-
>
35-
<ui5-li
36-
data-key="1"
37-
info-state="None"
38-
selected="true"
39-
style="width: 300px;"
40-
type="Active"
41-
>
42-
Variant 1
43-
</ui5-li>
44-
<ui5-li
45-
data-key="2"
46-
info-state="None"
47-
style="width: 300px;"
48-
type="Active"
49-
>
50-
Variant 2
51-
</ui5-li>
52-
</ui5-list>
53-
</ui5-responsive-popover>
5418
</div>
5519
`;
5620

@@ -68,42 +32,6 @@ exports[`VariantManagement Render without crashing 1`] = `
6832
design="Transparent"
6933
icon="navigation-down-arrow"
7034
/>
71-
<ui5-responsive-popover
72-
header-text="Variants"
73-
horizontal-align="Center"
74-
placement-type="Bottom"
75-
vertical-align="Center"
76-
>
77-
<ui5-button
78-
class="VariantManagement-footer-0"
79-
design="Emphasized"
80-
slot="footer"
81-
>
82-
Cancel
83-
</ui5-button>
84-
<ui5-list
85-
mode="SingleSelect"
86-
separators="All"
87-
>
88-
<ui5-li
89-
data-key="1"
90-
info-state="None"
91-
selected="true"
92-
style="width: 300px;"
93-
type="Active"
94-
>
95-
Variant 1
96-
</ui5-li>
97-
<ui5-li
98-
data-key="2"
99-
info-state="None"
100-
style="width: 300px;"
101-
type="Active"
102-
>
103-
Variant 2
104-
</ui5-li>
105-
</ui5-list>
106-
</ui5-responsive-popover>
10735
</div>
10836
`;
10937

packages/main/src/components/VariantManagement/index.tsx

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { StandardListItem } from '@ui5/webcomponents-react/lib/StandardListItem'
1717
import { Title } from '@ui5/webcomponents-react/lib/Title';
1818
import { TitleLevel } from '@ui5/webcomponents-react/lib/TitleLevel';
1919
import React, { FC, forwardRef, Ref, useCallback, useEffect, useMemo, useRef, useState } from 'react';
20+
import { createPortal } from 'react-dom';
2021
import { CommonProps } from '../../interfaces/CommonProps';
2122
import { Ui5ResponsivePopoverDomRef } from '../../interfaces/Ui5ResponsivePopoverDomRef';
2223
import { stopPropagation } from '../../internal/stopPropagation';
@@ -166,27 +167,30 @@ const VariantManagement: FC<VariantManagementPropTypes> = forwardRef(
166167
icon="navigation-down-arrow"
167168
disabled={disabled}
168169
/>
169-
<ResponsivePopover
170-
ref={popoverRef}
171-
headerText={popupTitle}
172-
placementType={placement}
173-
footer={footerButtons}
174-
onAfterClose={stopPropagation}
175-
>
176-
<List onItemClick={handleVariantItemSelect} mode={ListMode.SingleSelect}>
177-
{variantItems.map((item) => (
178-
<StandardListItem
179-
style={{ width: '300px' }}
180-
data-key={item.key}
181-
type={ListItemTypes.Active}
182-
key={item.key}
183-
selected={selectedKey === item.key}
184-
>
185-
{item.label}
186-
</StandardListItem>
187-
))}
188-
</List>
189-
</ResponsivePopover>
170+
{createPortal(
171+
<ResponsivePopover
172+
ref={popoverRef}
173+
headerText={popupTitle}
174+
placementType={placement}
175+
footer={footerButtons}
176+
onAfterClose={stopPropagation}
177+
>
178+
<List onItemClick={handleVariantItemSelect} mode={ListMode.SingleSelect}>
179+
{variantItems.map((item) => (
180+
<StandardListItem
181+
style={{ width: '300px' }}
182+
data-key={item.key}
183+
type={ListItemTypes.Active}
184+
key={item.key}
185+
selected={selectedKey === item.key}
186+
>
187+
{item.label}
188+
</StandardListItem>
189+
))}
190+
</List>
191+
</ResponsivePopover>,
192+
document.body
193+
)}
190194
</div>
191195
);
192196
}

0 commit comments

Comments
 (0)