Skip to content

Commit c6868af

Browse files
authored
fix(ui5-responsive-popover): implement default close button (#1501)
1 parent 77e6ab6 commit c6868af

File tree

5 files changed

+50
-3
lines changed

5 files changed

+50
-3
lines changed

packages/main/src/ResponsivePopover.hbs

+16-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,22 @@
99
@ui5-afterClose="{{_afterDialogClose}}"
1010
>
1111
{{!-- forward slot header to inner dialog slot header --}}
12-
<slot slot="header" name="header"></slot>
12+
{{#if header.length}}
13+
<slot slot="header" name="header"></slot>
14+
{{else}}
15+
<header class="ui5-responsive-popover-header">
16+
{{#if headerText}}
17+
<ui5-title level="H5" class="ui5-responsive-popover-header-text">{{headerText}}</ui5-title>
18+
{{/if}}
19+
<ui5-button
20+
icon="decline"
21+
design="Transparent"
22+
@click="{{close}}"
23+
>
24+
</ui5-button>
25+
</header>
26+
{{/if}}
27+
1328
<slot></slot>
1429
{{!-- forward slot footer to inner dialog slot footer --}}
1530
<slot slot="footer" name="footer"></slot>

packages/main/src/ResponsivePopover.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import { getNextZIndex } from "./popup-utils/PopupUtils.js";
44
import ResponsivePopoverTemplate from "./generated/templates/ResponsivePopoverTemplate.lit.js";
55
import Popover from "./Popover.js";
66
import Dialog from "./Dialog.js";
7+
import Button from "./Button.js";
8+
import Title from "./Title.js";
9+
import "@ui5/webcomponents-icons/dist/icons/decline.js";
710

811
// Styles
912
import ResponsivePopoverCss from "./generated/themes/ResponsivePopover.css.js";
@@ -82,7 +85,11 @@ class ResponsivePopover extends Popover {
8285
}
8386

8487
static async onDefine() {
85-
await Dialog.define();
88+
await Promise.all([
89+
Button.define(),
90+
Dialog.define(),
91+
Title.define(),
92+
]);
8693
}
8794

8895
/**

packages/main/src/themes/ResponsivePopover.css

+19
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,23 @@
1010

1111
:host([opened]) {
1212
display: inline-block;
13+
}
14+
15+
.ui5-responsive-popover-header {
16+
height: var(--_ui5-responnsive_popover_header_height);
17+
display: flex;
18+
justify-content: space-between;
19+
align-items: center;
20+
padding: 0 0 0 1rem;
21+
box-shadow: var(--sapContent_HeaderShadow);
22+
}
23+
24+
:host [dir="rtl"] .ui5-responsive-popover-header {
25+
padding: 0 1rem 0 0;
26+
}
27+
28+
.ui5-responsive-popover-header-text {
29+
display: flex;
30+
align-items: center;
31+
width: calc(100% - var(--_ui5_button_base_min_width));
1332
}

packages/main/src/themes/base/sizes-parameters.css

+6
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@
5656
--_ui5_tc_item_text_line_height: normal;
5757
--_ui5_tc_item_icon_size: 1.5rem;
5858
--_ui5_tc_item_add_text_margin_top: 0.625rem;
59+
60+
/* Responsive Popover */
61+
--_ui5-responnsive_popover_header_height: 2.75rem;
5962
}
6063

6164
[data-ui5-compact-size],
@@ -176,4 +179,7 @@
176179

177180
/* Radio Button */
178181
--_ui5_radiobutton_min_width: var(--_ui5_radiobutton_min_width_compact);
182+
183+
/* Responsive Popover */
184+
--_ui5-responnsive_popover_header_height: 2.5rem;
179185
}

packages/main/test/pages/ResponsivePopover.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
</ui5-responsive-popover>
4646

4747
<!-- with header-text and footer slot-->
48-
<ui5-responsive-popover id="respPopover2" header-text="Newsletter subscription">
48+
<ui5-responsive-popover id="respPopover2" header-text="Newsletter subscription for very long period of time">
4949
<div class="popover-content">
5050
<ui5-label for="emailInput" required>Email: </ui5-label>
5151
<ui5-input id="emailInput" class="samples-margin-top" style="min-width: 150px;" placeholder="Enter Email"></ui5-input>

0 commit comments

Comments
 (0)