Rev.registerComponent 'StatelessTabsAccordion',
getDefaultProps: ->
onChange: () -> # noop
activeKey: null
render: ->
{@getNormalizedChildren().map @renderChild}
renderChild: (child) ->
active = child.key == @props.activeKey
className = @classSet
"RevTabsAccordion": true
"RevTabsAccordion is-active": true
"accordion-navigation": true
"active": active
tab = React.cloneElement child.props.tab,
onClick: @handleTabClick child
content = React.cloneElement child,
active: active
{tab}
{content}
handleTabClick: (activeTab) -> (e) =>
e.preventDefault()
e.stopPropagation()
e.activeTab = activeTab
@props.onChange(e)
Rev.registerComponent 'TabsAccordion',
getDefaultProps: ->
onChange: () -> # noop
getInitialState: ->
activeKey: null
render: ->
handleChange: (e) ->
if e.activeTab.key == @state.activeKey
e.activeTab = null
@setState activeKey: e.activeTab?.key or null
@props.onChange e