@nomios/web-uikit
Version:
Nomios' living web UIKit
47 lines (43 loc) • 1.26 kB
JavaScript
import _omit from "lodash/omit";
import React from 'react';
import PropTypes from 'prop-types';
import { ChevronIcon } from '../../../icon';
import classNames from 'classnames';
import styles from './DefaultTrigger.css';
const DefaultTrigger = ({
selectedData,
placeholder,
menuIsOpen,
className
}) => {
const triggerClassName = classNames(styles.trigger, {
[styles.menuIsOpen]: menuIsOpen,
[styles.placeholder]: !selectedData
}, className);
let children;
if (!selectedData) {
children = placeholder;
} else if (selectedData.render) {
const selectedOptionProps = {
isSelected: false,
isDisabled: false,
isFocused: false,
data: _omit(selectedData, 'render')
};
children = selectedData.render(selectedOptionProps);
} else {
children = selectedData.label ? selectedData.label : selectedData.value;
}
return React.createElement("div", {
className: triggerClassName
}, children, React.createElement(ChevronIcon, {
className: styles.chevron
}));
};
DefaultTrigger.propTypes = {
selectedData: PropTypes.object.isRequired,
placeholder: PropTypes.string.isRequired,
menuIsOpen: PropTypes.bool.isRequired,
className: PropTypes.string
};
export default DefaultTrigger;