@nomios/web-uikit
Version:
Nomios' living web UIKit
43 lines (39 loc) • 1.16 kB
JavaScript
import _omit from "lodash/omit";
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import styles from './CustomOption.css';
const CustomOption = ({
innerProps,
isSelected,
isDisabled,
isFocused,
data,
selectProps
}) => {
const optionClassName = classNames(styles.option, {
[styles.focused]: isFocused
}, selectProps.optionClassName);
const optionProps = {
isSelected,
isDisabled,
isFocused,
defaultClassName: optionClassName,
data: _omit(data, 'render')
};
if (data.render || selectProps.renderOption) {
return React.createElement("div", innerProps, data.render ? data.render(optionProps) : selectProps.renderOption(optionProps));
}
return React.createElement("div", Object.assign({}, innerProps, {
className: optionClassName
}), data.label);
};
CustomOption.propTypes = {
selectProps: PropTypes.object.isRequired,
innerProps: PropTypes.object.isRequired,
isSelected: PropTypes.bool.isRequired,
isDisabled: PropTypes.bool.isRequired,
isFocused: PropTypes.bool.isRequired,
data: PropTypes.object.isRequired
};
export default CustomOption;