diff --git a/src/common/Multiselect/Multiselect.js b/src/common/Multiselect/Multiselect.js index ff7b11eda..ad9f705bd 100644 --- a/src/common/Multiselect/Multiselect.js +++ b/src/common/Multiselect/Multiselect.js @@ -4,10 +4,11 @@ const classnames = require('classnames'); const Icon = require('stremio-icons/dom'); const Button = require('stremio/common/Button'); const Popup = require('stremio/common/Popup'); +const ModalDialog = require('stremio/common/ModalDialog'); const useBinaryState = require('stremio/common/useBinaryState'); const styles = require('./styles'); -const Multiselect = ({ className, direction, title, disabled, dataset, renderLabelContent, renderLabelText, onOpen, onClose, onSelect, ...props }) => { +const Multiselect = ({ className, direction, title, disabled, dataset, modalSelects, renderLabelContent, renderLabelText, onOpen, onClose, onSelect, ...props }) => { const [menuOpen, , closeMenu, toggleMenu] = useBinaryState(false); const options = React.useMemo(() => { return Array.isArray(props.options) ? @@ -77,59 +78,81 @@ const Multiselect = ({ className, direction, title, disabled, dataset, renderLab mountedRef.current = true; }, [menuOpen]); - return ( - ( - - )} - renderMenu={() => ( -
- { - options.length > 0 ? - options.map(({ label, value }) => ( - - )) - : -
-
No options available
+ return labels; + }, []).join(', ') + : + title + } +
+ + + } + {children} + + )); + return ( + + { + !modalSelects ? + { + return renderLabel({ + ...labelProps, + ...props, + className: classnames(className, labelProps.className) + }); + }} + renderMenu={() => ( +
+ { + options.length > 0 ? + options.map(({ label, value }) => ( + + )) + : +
+
No options available
+
+ }
- } -
- )} - /> + )} + /> + : + + {renderLabel({ + ...props, + className + })} + { + menuOpen ? : null + } + + } + ); }; @@ -144,6 +167,7 @@ Multiselect.propTypes = { selected: PropTypes.arrayOf(PropTypes.string), disabled: PropTypes.bool, dataset: PropTypes.objectOf(PropTypes.string), + modalSelects: PropTypes.bool, renderLabelContent: PropTypes.func, renderLabelText: PropTypes.func, onOpen: PropTypes.func,