Skip to content

Commit f46ef4e

Browse files
committed
fix: show popup content in design preview when advanced mode is enabled
1 parent d906658 commit f46ef4e

3 files changed

Lines changed: 27 additions & 41 deletions

File tree

packages/pluggableWidgets/popup-menu-web/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66

77
## [Unreleased]
88

9+
### Fixed
10+
11+
- We fixed an issue with Advanced options mode not showing options content in Design mode.
12+
913
## [4.0.3] - 2026-02-10
1014

1115
### Added
Lines changed: 19 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,34 @@
1-
import { parseStyle } from "@mendix/widget-plugin-platform/preview/parse-style";
1+
import classNames from "classnames";
22
import { ReactElement } from "react";
3-
import { PopupMenu as PopupMenuComponent } from "./components/PopupMenu";
43

5-
import { BasicItemsType, CustomItemsType, PopupMenuPreviewProps } from "../typings/PopupMenuProps";
6-
import { dynamicValue } from "./utils/attrValue";
4+
import { parseStyle } from "@mendix/widget-plugin-platform/preview/parse-style";
5+
import { PopupMenuPreviewProps } from "../typings/PopupMenuProps";
76

87
export function getPreviewCss(): string {
98
return require("./ui/PopupMenuPreview.scss");
109
}
1110

1211
export function preview(props: PopupMenuPreviewProps): ReactElement {
13-
const basicItems: BasicItemsType[] = [];
14-
const customItems: CustomItemsType[] = [];
15-
const styles = parseStyle(props.style);
16-
17-
if (!props.advancedMode) {
18-
props.basicItems.forEach(item => {
19-
basicItems.push({
20-
itemType: item.itemType,
21-
caption: dynamicValue(item.caption),
22-
action: undefined,
23-
styleClass: item.styleClass
24-
});
25-
});
26-
} else {
27-
props.customItems.forEach(item => {
28-
customItems.push({
29-
action: undefined,
30-
content: (
31-
<item.content.renderer>
32-
<div />
33-
</item.content.renderer>
34-
)
35-
});
36-
});
37-
}
12+
const showMenu = props.advancedMode && props.customItems.length > 0;
3813

3914
return (
40-
<PopupMenuComponent
41-
{...props}
42-
class={props.className}
43-
basicItems={basicItems}
44-
customItems={customItems}
45-
menuTrigger={
15+
<div className={classNames("popupmenu", props.class)}>
16+
<div className="popupmenu-trigger">
4617
<props.menuTrigger.renderer>
4718
<div />
4819
</props.menuTrigger.renderer>
49-
}
50-
name="Popup Menu"
51-
preview
52-
style={styles}
53-
tabIndex={0}
54-
/>
20+
</div>
21+
<div className="widget-popupmenu-root">
22+
{showMenu && (
23+
<ul style={parseStyle(props.style)} className="popupmenu-menu">
24+
{props.customItems.map((item, index) => (
25+
<item.content.renderer key={index}>
26+
<li className={"popupmenu-custom-item"}></li>
27+
</item.content.renderer>
28+
))}
29+
</ul>
30+
)}
31+
</div>
32+
</div>
5533
);
5634
}

packages/pluggableWidgets/popup-menu-web/src/ui/PopupMenuPreview.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
.popupmenu {
22
width: 100%;
3+
flex-direction: column;
4+
.popupmenu-menu {
5+
position: static;
6+
}
37
}
48

59
.popupmenu-trigger {

0 commit comments

Comments
 (0)