Repository URL to install this package:
Version:
0.9.6 ▾
|
import React from 'react'
import { toCommonState } from 'src/state/common'
import { ButtonProps, ButtonState } from './typings'
import {
renderWrap as defaultRenderWrap,
renderChildren as defaultRenderChildren,
renderText as defaultRenderText,
renderIcon as defaultRenderIcon,
renderIconWrapper as defaultRenderIconWrapper,
} from './renderProps'
class Button extends React.PureComponent<ButtonProps, ButtonState> {
static defaultProps = {
className: '',
text: 'button',
breedType: 'default',
iconType: 'cart',
iconAlignType: 'prefix',
renderText: defaultRenderText,
renderIcon: defaultRenderIcon,
renderChildren: defaultRenderChildren,
renderIconWrapper: defaultRenderIconWrapper,
renderWrap: defaultRenderWrap,
}
// @todo is needed for updating aria
// @note - button is a pure component, not an observer...
// observableState = toCommonState(this.props)
render() {
// import { omit } from '@skava/modules/___dist/utils/omit'
// const KNOWN_PROPS = Object.freeze(['renderWrap'])
// const neededProps = omit(this.props, KNOWN_PROPS)
// const view = this.props.renderWrap(neededProps, this.state)
const { renderWrap, ...remainingProps } = this.props
const view = renderWrap(remainingProps, this.state)
return view
}
}
export { Button }
export default Button