UNPKG

cuz

Version:

Front-end modular development kit.

88 lines (70 loc) 2.01 kB
'use strict'; 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'];