Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / @skava/ui   js

Repository URL to install this package:

Version: 4.2.0-a11y.0 

/ src / components / molecules / TabList / TabList.tsx

import React from 'react'
import { NO_OP } from 'exotic'
import { observer } from 'xmobx/mobx-react'
import { SelectionState } from 'src/state/SelectionState'
import { TabListRenderProp } from './typings'
import {
  defaultRenderList,
  defaultRenderWrapper,
  defaultRenderContainer,
} from './renderProps'

@observer
class TabList extends React.Component<TabListRenderProp> {
  static defaultProps = {
    className: '',
    list: [],
    renderList: defaultRenderList,
    renderWrapper: defaultRenderWrapper,
    renderContainer: defaultRenderContainer,
  }
  observableState = new SelectionState()
  componentWillMount() {
    const attributes = {
      ...this.props,
      list: this.props.list,
      onChange: NO_OP,
    }
    this.observableState.decorateWithProps(attributes)
  }

  handleForce = () => {
    this.forceUpdate()
  }

  render() {
    const { renderWrapper, ...remainingProps } = this.props
    const attributes = {
      ...remainingProps,
      handleForce: this.handleForce,
    }
    const view = renderWrapper(attributes)
    return view
  }
}
export { TabList }
export default TabList