feat: List select component.

This commit is contained in:
Ahmed Bouhuolia
2020-05-24 01:48:07 +02:00
parent 80bca1d7a3
commit 18a032ffd1
6 changed files with 115 additions and 118 deletions

View File

@@ -0,0 +1,35 @@
import React, { useState, useEffect } from 'react';
import {
Button,
} from '@blueprintjs/core';
import { Select } from '@blueprintjs/select';
export default function ListSelect ({
buttonProps,
defaultText,
labelProp,
selectedItem,
selectedItemProp = 'id',
...selectProps
}) {
const [currentItem, setCurrentItem] = useState(null);
useEffect(() => {
if (selectedItem && selectedItemProp) {
const item = selectProps.items.find(i => i[selectedItemProp] === selectedItem);
setCurrentItem(item);
}
}, [selectedItem, selectedItemProp, selectProps.items]);
return (
<Select
{...selectProps}
>
<Button
text={currentItem ? currentItem[labelProp] : defaultText}
{...buttonProps}
/>
</Select>
)
}