cuz
Version:
Front-end modular development kit.
88 lines (70 loc) • 2.01 kB
JavaScript
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
exports.__esModule = true;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _Button = require('../Button');
var _Button2 = _interopRequireDefault(_Button);
var _Input = require('../Input');
var _Input2 = _interopRequireDefault(_Input);
var PageTo = _react2['default'].createClass({
displayName: 'PageTo',
propTypes: {
btnText: _react2['default'].PropTypes.string,
desText: _react2['default'].PropTypes.string,
onSelect: _react2['default'].PropTypes.func
},
getDefaultProps: function getDefaultProps() {
return {
desText: 'Go to page',
btnText: 'Go'
};
},
getInitialState: function getInitialState() {
return {
value: ''
};
},
validationState: function validationState() {
if (isNaN(this.state.value)) return 'error';
},
handleChange: function handleChange() {
this.setState({
value: this.refs.input.getValue()
});
},
handleSelect: function handleSelect() {
if (this.props.onSelect) {
this.props.onSelect(this.state.value);
}
},
renderButton: function renderButton() {
return _react2['default'].createElement(
_Button2['default'],
{ bsSize: 'small', onClick: this.handleSelect },
this.props.btnText
);
},
render: function render() {
return _react2['default'].createElement(
'div',
{ className: 'page-to form-inline' },
_react2['default'].createElement(
'span',
null,
this.props.desText
),
_react2['default'].createElement(_Input2['default'], {
ref: 'input',
bsSize: 'small',
type: 'text',
value: this.state.value,
bsStyle: this.validationState(),
onChange: this.handleChange,
buttonAfter: this.renderButton()
})
);
}
});
exports['default'] = PageTo;
module.exports = exports['default'];
;