Skip to content

Commit c509da7

Browse files
committed
fix: dropdown item too long
1 parent cbd7b23 commit c509da7

File tree

3 files changed

+44
-3
lines changed

3 files changed

+44
-3
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@beeinventor/dasiot-react-component-lib",
3-
"version": "1.8.3",
3+
"version": "1.8.4",
44
"module": "lib/index.js",
55
"types": "lib/index.d.ts",
66
"files": [

src/components/Dropdown/Dropdown.stories.tsx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ const list: DropDownItem[] = [
2727
value: 'A004',
2828
name: 'Distributor C',
2929
},
30+
{
31+
id: 'A004',
32+
value: 'A004',
33+
name: 'Very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long',
34+
},
3035
];
3136

3237
const meta: Meta<typeof Dropdown> = {
@@ -64,6 +69,30 @@ export const Default: Story = {
6469
render: () => <Dropdown list={list} onSelect={() => {}} />,
6570
};
6671

72+
export const FixItemTooLong: Story = {
73+
render: () => (
74+
<Dropdown
75+
list={list}
76+
onSelect={() => {}}
77+
popperProps={{
78+
sx: {
79+
'& .Dropdown-icon': {
80+
flexShrink: 0,
81+
},
82+
'& .Dropdown-item': {
83+
'> span': {
84+
minWidth: 0,
85+
textOverflow: 'ellipsis',
86+
overflow: 'hidden',
87+
whiteSpace: 'nowrap',
88+
},
89+
},
90+
},
91+
}}
92+
/>
93+
),
94+
};
95+
6796
export const Exceptance: Story = {
6897
render: () => (
6998
<Dropdown

src/components/Dropdown/Dropdown.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ const Root = styled(Box)(({ theme }) => ({
3636
opacity: 0.3,
3737
pointerEvents: 'none',
3838
},
39+
40+
'& .selected-name': {
41+
minWidth: 0,
42+
textOverflow: 'ellipsis',
43+
overflow: 'hidden',
44+
whiteSpace: 'nowrap',
45+
},
3946
}));
4047

4148
const List = styled(Box)(({ theme }) => ({
@@ -148,7 +155,7 @@ const Dropdown: React.FC<DropDownProps> = (props) => {
148155
<Icon className="Dropdown-icon">
149156
{selectedItem?.id === item.id && <img src={CheckSvg} />}
150157
</Icon>
151-
{item.name}
158+
<span title={item.name}>{item.name}</span>
152159
</Item>
153160
));
154161

@@ -172,7 +179,12 @@ const Dropdown: React.FC<DropDownProps> = (props) => {
172179
onClick={handleOnClickSelect}
173180
{...otherProps}
174181
>
175-
{selectedItem?.name ?? placeholder}
182+
<span
183+
className="selected-name"
184+
title={selectedItem?.name ?? placeholder}
185+
>
186+
{selectedItem?.name ?? placeholder}
187+
</span>
176188
<Icon className="Dropdown-icon">
177189
{isOpen ? <KeyboardArrowUp /> : <KeyboardArrowDown />}
178190
</Icon>

0 commit comments

Comments
 (0)