Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
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