UNPKG

apeman-react-button

Version:
74 lines (62 loc) 1.45 kB
/** * Big button component. * @class ApBigButton */ 'use strict' import React, {PropTypes as types} from 'react' import classnames from 'classnames' import ApButton from './ap_button' import {shallowEqual} from 'asobj' /** @lends ApBigButton */ const ApBigButton = React.createClass({ // -------------------- // Specs // -------------------- propTypes: { disabled: types.bool, onTap: types.func, text: types.string, size: types.number }, mixins: [], getInitialState () { return {} }, getDefaultProps () { return { disabled: false, onTap: null, text: null, size: 94 } }, render () { const s = this let { props } = s let { size } = props let style = Object.assign({ width: size, height: size }, props.style) return ( <ApButton { ...props } className={ classnames('ap-big-button', props.className) } wide={ false } style={ style } > <span className='ap-big-button-text'> { props.text } </span> { props.children } </ApButton> ) }, // -------------------- // Lifecycle // -------------------- shouldComponentUpdate (nextProps, nextState) { const s = this let { props, state } = s return !shallowEqual(props, nextProps) || !shallowEqual(state, nextState) }, }) export default ApBigButton