Skip to content

Commit 93a1ee9

Browse files
authored
Merge pull request #65 from BeeInventor/feature/update-dropdown
Feature/update dropdown
2 parents 86088b2 + 7b75531 commit 93a1ee9

File tree

4 files changed

+29
-13
lines changed

4 files changed

+29
-13
lines changed

package.json

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

src/components/Dropdown/Dropdown.stories.tsx

+25-9
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,31 @@ export const Selected: Story = {
8787
};
8888

8989
export const Selection: Story = {
90-
render: () => (
91-
<Dropdown
92-
placeholder="Select"
93-
list={list}
94-
selectedId="A004"
95-
selectionId="A003"
96-
onSelect={() => {}}
97-
/>
98-
),
90+
render: () => {
91+
const [selectionIds, setSelectionIds] = useState<string[]>([]);
92+
const [selectedId, setSelectedId] = useState<string>();
93+
94+
const onChange = (value: string | number) => {
95+
const updateValue = [...selectionIds];
96+
if (selectionIds.includes(value as string)) {
97+
updateValue.splice(updateValue.indexOf(value as string), 1);
98+
} else {
99+
updateValue.push(value as string);
100+
}
101+
setSelectionIds(updateValue);
102+
setSelectedId(value as string);
103+
};
104+
105+
return (
106+
<Dropdown
107+
placeholder="Select"
108+
selectedId={selectedId}
109+
list={list}
110+
selectionIds={selectionIds}
111+
onSelect={onChange}
112+
/>
113+
);
114+
},
99115
};
100116

101117
export const WithDialog: Story = {

src/components/Dropdown/Dropdown.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ const Dropdown: React.VFC<DropDownProps> = (props) => {
9191
disabled,
9292
onSelect,
9393
popperProps,
94-
selectionId,
94+
selectionIds,
9595
mode = 'light',
9696
...otherProps
9797
} = props;
@@ -136,7 +136,7 @@ const Dropdown: React.VFC<DropDownProps> = (props) => {
136136
};
137137

138138
const items = list
139-
.filter((item) => item.id !== selectionId)
139+
.filter((item) => !selectionIds?.includes(item.id))
140140
.map((item, i) => (
141141
<Item
142142
key={`dropdown-item-${item.id}`}

src/components/Dropdown/Dropdown.type.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,5 @@ export interface DropDownProps extends Omit<BoxProps, 'onSelect'> {
4444
/**
4545
* filter the list out of this id
4646
*/
47-
selectionId?: string;
47+
selectionIds?: string[];
4848
}

0 commit comments

Comments
 (0)