react-cms
Version:
For personal use. Not production.
49 lines (43 loc) • 1.17 kB
JavaScript
/* @flow */
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import styles from './styles.css'; // eslint-disable-line no-unused-vars
export default class Option extends Component {
static propTypes = {
onClick: PropTypes.func.isRequired,
children: PropTypes.any,
value: PropTypes.string,
className: PropTypes.string,
activeClassName: PropTypes.string,
active: PropTypes.bool,
disabled: PropTypes.bool,
title: PropTypes.string,
};
onClick: Function = () => {
const { disabled, onClick, value } = this.props;
if (!disabled) {
onClick(value);
}
};
render() {
const { children, className, activeClassName, active, disabled, title } = this.props;
return (
<div
className={classNames(
'rdw-option-wrapper',
className,
{
[`rdw-option-active ${activeClassName}`]: active,
'rdw-option-disabled': disabled,
}
)}
onClick={this.onClick}
aria-selected={active}
title={title}
>
{children}
</div>
);
}
}