From c57a1b56f2251e8fd32b4ca9a3f6102d45818ce0 Mon Sep 17 00:00:00 2001 From: blobfysh <47480729+blobfysh@users.noreply.github.com> Date: Sun, 20 Dec 2020 11:22:28 -0500 Subject: [PATCH 1/2] add support for multiselect dropdowns added isMulti prop to Dropdown component to enable multiselect dropdown --- src/components/Dropdown/index.js | 31 ++++++++++++++++++++++++------- src/components/Form/index.js | 17 +++++++++++++++++ 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/src/components/Dropdown/index.js b/src/components/Dropdown/index.js index 587ad6a..567b1be 100644 --- a/src/components/Dropdown/index.js +++ b/src/components/Dropdown/index.js @@ -3,10 +3,21 @@ import PropTypes from 'prop-types' import mainStyles from '../../styles.module.css' -const Dropdown = ({ value, label, field, data, placeholder, onChange }) => { +const Dropdown = ({ value, label, field, data, placeholder, onChange, isMulti }) => { const handleChange = (event) => { - const { value } = event.target - onChange(value, field) + if (isMulti) { + const { options } = event.target + const value = [] + + for (let i = 0; i < options.length; i++) { + if (options[i].selected) value.push(options[i].value) + } + + onChange(value, field) + } else { + const { value } = event.target + onChange(value, field) + } } return ( @@ -16,8 +27,12 @@ const Dropdown = ({ value, label, field, data, placeholder, onChange }) => { value={value} className={mainStyles.formControl} onChange={handleChange} + multiple={isMulti} > - + { + !isMulti && + + } {data.map((item, key) => (