accounts-frontend/src/components/ui/form/Captcha.jsx

49 lines
1.1 KiB
React
Raw Normal View History

import React, { PropTypes } from 'react';
2016-08-05 11:28:24 +05:30
import classNames from 'classnames';
import captcha from 'services/captcha';
import { skins, SKIN_DARK } from 'components/ui';
import styles from './form.scss';
import FormInputComponent from './FormInputComponent';
export default class Captcha extends FormInputComponent {
static displayName = 'Captcha';
static propTypes = {
skin: PropTypes.oneOf(skins)
};
static defaultProps = {
skin: SKIN_DARK
};
componentDidMount() {
captcha.render(this.el, {
skin: this.props.skin,
onSetCode: this.setCode
});
}
render() {
2016-08-05 11:28:24 +05:30
const {skin} = this.props;
return (
<div>
2016-08-05 11:28:24 +05:30
<div ref={this.setEl} className={classNames(
styles.captcha,
styles[`${skin}Captcha`]
)} />
{this.renderError()}
</div>
);
}
getValue() {
return this.state && this.state.code;
}
setCode = (code) => this.setState({code});
}