Sha256: 9ff865c1f5b4f686899403330f19c7b4b4794b87665e577d8764520ece6bd14f

Contents?: true

Size: 1.1 KB

Versions: 6

Compression:

Stored size: 1.1 KB

Contents

Rev.registerComponent 'StatelessTabs',

  getDefaultProps: ->
    activeKey: null
    onChange: () -> # noop

  getActiveKey: -> @props.activeKey or @getNormalizedChildren()[0]?.key

  renderTab: (child) ->
    className = @classSet
      active: child.key == @getActiveKey()
      'RevTabs-tab': true

    <dd key={child.key} className={className} onClick={@handleTabClick(child)}>
      {child.props.tab}
    </dd>

  renderContent: (child) ->
    newProps = key: child.key
    newProps.active = true if child.key == @getActiveKey()
    React.cloneElement child, newProps

  render: ->
    dlClassName = @classSet
      'RevTabs-tabs': true
      tabs: true
      vertical: @props.vertical

    <div className='RevTabs'>
      <dl className={dlClassName}>
        {@getNormalizedChildren().map @renderTab}
      </dl>
      <Rev.Components.StatelessTabContent {...@props} activeKey={@getActiveKey()}>
        {@props.children}
      </Rev.Components.StatelessTabContent>
    </div>

  handleTabClick: (activeTab) -> (e) =>
    e.preventDefault()
    e.stopPropagation()
    e.activeTab = activeTab
    @props.onChange(e)

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
revelry_core-0.1.12.6 app/assets/javascripts/revelry/ui/tabs/StatelessTabs.js.cjsx
revelry_core-0.1.12.5 app/assets/javascripts/revelry/ui/tabs/StatelessTabs.js.cjsx
revelry_core-0.1.12.4 app/assets/javascripts/revelry/ui/tabs/StatelessTabs.js.cjsx
revelry_core-0.1.12.3 app/assets/javascripts/revelry/ui/tabs/StatelessTabs.js.cjsx
revelry_core-0.1.12.2 app/assets/javascripts/revelry/ui/tabs/StatelessTabs.js.cjsx
revelry_core-0.1.12.0 app/assets/javascripts/revelry/ui/tabs/StatelessTabs.js.cjsx