Skip to content

Commit 6bd21e7

Browse files
show links as per space available for table links type columns
1 parent 2d76ceb commit 6bd21e7

File tree

1 file changed

+36
-54
lines changed

1 file changed

+36
-54
lines changed

client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnLinksComp.tsx

Lines changed: 36 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { EllipsisOutlined } from "@ant-design/icons";
2-
import { default as Dropdown} from "antd/es/dropdown";
31
import { default as Menu } from "antd/es/menu";
42
import { ColumnTypeCompBuilder } from "comps/comps/tableComp/column/columnTypeCompBuilder";
53
import { ActionSelectorControlInContext } from "comps/controls/actionSelector/actionSelectorControl";
@@ -12,18 +10,6 @@ import styled from "styled-components";
1210
import { ColumnLink } from "comps/comps/tableComp/column/columnTypeComps/columnLinkComp";
1311
import { LightActiveTextColor, PrimaryColor } from "constants/style";
1412

15-
const LinksWrapper = styled.div`
16-
white-space: nowrap;
17-
18-
> a {
19-
margin-right: 8px;
20-
}
21-
22-
> a:last-child {
23-
margin-right: 0;
24-
}
25-
`;
26-
2713
const MenuLinkWrapper = styled.div`
2814
> a {
2915
color: ${PrimaryColor} !important;
@@ -34,6 +20,22 @@ const MenuLinkWrapper = styled.div`
3420
}
3521
`;
3622

23+
const MenuWrapper = styled.div`
24+
ul {
25+
background: transparent !important;
26+
border-bottom: 0;
27+
28+
li {
29+
padding: 0 10px 0 0 !important;
30+
line-height: normal !important;
31+
32+
&::after {
33+
content: none !important;
34+
}
35+
}
36+
}
37+
`;
38+
3739
const OptionItem = new MultiCompBuilder(
3840
{
3941
label: StringControl,
@@ -69,48 +71,28 @@ export const ColumnLinksComp = (function () {
6971
return new ColumnTypeCompBuilder(
7072
childrenMap,
7173
(props) => {
72-
const menu = props.options.length > 3 && (
73-
<Menu>
74-
{props.options
75-
.filter((o) => !o.hidden)
76-
.slice(3)
77-
.map((option, index) => (
78-
<Menu.Item key={index}>
79-
<MenuLinkWrapper>
80-
<ColumnLink
81-
disabled={option.disabled}
82-
label={option.label}
83-
onClick={option.onClick}
84-
/>
85-
</MenuLinkWrapper>
86-
</Menu.Item>
87-
))}
88-
</Menu>
89-
);
74+
const menuItems = props.options
75+
.filter((o) => !o.hidden)
76+
.map((option, index) => (
77+
{
78+
key: index,
79+
label: (
80+
<MenuLinkWrapper>
81+
<ColumnLink
82+
disabled={option.disabled}
83+
label={option.label}
84+
onClick={option.onClick}
85+
/>
86+
</MenuLinkWrapper>
87+
)
88+
}
89+
));
9090

9191
return (
92-
<LinksWrapper>
93-
{props.options
94-
.filter((o) => !o.hidden)
95-
.slice(0, 3)
96-
.map((option, i) => (
97-
<ColumnLink
98-
key={i}
99-
disabled={option.disabled}
100-
label={option.label}
101-
onClick={option.onClick}
102-
/>
103-
))}
104-
{menu && (
105-
<Dropdown
106-
trigger={["hover"]}
107-
dropdownRender={() => menu}
108-
>
109-
<EllipsisOutlined onClick={(e) => e.preventDefault()} />
110-
</Dropdown>
111-
)}
112-
</LinksWrapper>
113-
);
92+
<MenuWrapper>
93+
<Menu mode="horizontal" items={menuItems} />
94+
</MenuWrapper>
95+
)
11496
},
11597
() => ""
11698
)

0 commit comments

Comments
 (0)