Browse Source

fix: add tabs listeners #189

pull/197/head
undefined 6 years ago
parent
commit
3a6e2f9b2a
  1. 81
      components/tabs/tabs.jsx
  2. 5
      components/vc-tabs/src/Tabs.jsx

81
components/tabs/tabs.jsx

@ -86,10 +86,6 @@ export default {
onPrevClick, onPrevClick,
onNextClick, onNextClick,
animated, animated,
destroyInactiveTabPane = false,
activeKey,
defaultActiveKey,
$slots,
tabBarGutter, tabBarGutter,
} = this } = this
const children = filterEmpty(this.$slots.default) const children = filterEmpty(this.$slots.default)
@ -181,80 +177,15 @@ export default {
children: childrenWithClose.length > 0 ? childrenWithClose : children, children: childrenWithClose.length > 0 ? childrenWithClose : children,
__propsSymbol__: Symbol(), __propsSymbol__: Symbol(),
}, },
on: {
...this.$listeners,
change: this.handleChange,
},
class: cls,
} }
return ( return (
<VcTabs <VcTabs {...tabsProps} />
{...tabsProps}
class={cls}
onChange={this.handleChange}
/>
) )
// const tabBarExtraContent = getComponentFromProp(this, 'tabBarExtraContent')
// const children = []
// $slots.default && $slots.default.forEach((child) => {
// if (isEmptyElement(child)) { return }
// const { componentOptions } = child
// const __ANT_TAB_PANE = getSlotOptions(child).__ANT_TAB_PANE
// warning(__ANT_TAB_PANE, '`Tabs children just support TabPane')
// if (componentOptions && __ANT_TAB_PANE) {
// componentOptions.propsData = componentOptions.propsData || {}
// if (componentOptions.propsData.tab === undefined) {
// const tab = (componentOptions.children || []).filter(({ data = {}}) => data.slot === 'tab')
// componentOptions.propsData.tab = tab
// }
// children.push(child)
// }
// })
// const tabBarProps = {
// props: {
// hideAdd,
// removeTab: this.removeTab,
// createNewTab: this.createNewTab,
// inkBarAnimated,
// tabBarGutter,
// },
// on: {
// tabClick: onTabClick,
// prevClick: onPrevClick,
// nextClick: onNextClick,
// },
// style: tabBarStyle,
// }
// const tabContentProps = {
// props: {
// animated: tabPaneAnimated,
// animatedWithMargin: true,
// },
// }
// const tabsProps = {
// props: {
// prefixCls,
// tabBarPosition: tabPosition,
// tabBarProps: tabBarProps,
// tabContentProps: tabContentProps,
// destroyInactiveTabPane,
// defaultActiveKey,
// type,
// },
// on: {
// change: this.handleChange,
// tabClick: this.onTabClick,
// },
// }
// if (hasProp(this, 'activeKey')) {
// tabsProps.props.activeKey = activeKey
// }
// return (
// <Tabs
// class={cls}
// {...tabsProps}
// >
// {children}
// {tabBarExtraContent ? <template slot='tabBarExtraContent'>
// {tabBarExtraContent}
// </template> : null}
// </Tabs>
// )
}, },
} }

5
components/vc-tabs/src/Tabs.jsx

@ -1,3 +1,4 @@
import omit from 'omit.js'
import BaseMixin from '../../_util/BaseMixin' import BaseMixin from '../../_util/BaseMixin'
import PropTypes from '../../_util/vue-types' import PropTypes from '../../_util/vue-types'
import KeyCode from './KeyCode' import KeyCode from './KeyCode'
@ -179,9 +180,7 @@ export default {
contents.reverse() contents.reverse()
} }
return ( return (
<div <div {...{ on: omit(this.$listeners, ['change']), class: cls }}>
class={cls}
>
{contents} {contents}
</div> </div>
) )

Loading…
Cancel
Save