ScrollableInkTabBar.js 1.49 KB
Newer Older
liang ce committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';
import _extends from 'babel-runtime/helpers/extends';
import InkTabBarNode from './InkTabBarNode';
import TabBarTabsNode from './TabBarTabsNode';
import TabBarRootNode from './TabBarRootNode';
import ScrollableTabBarNode from './ScrollableTabBarNode';
import SaveRef from './SaveRef';

export default {
  name: 'ScrollableInkTabBar',
  inheritAttrs: false,
  props: ['extraContent', 'inkBarAnimated', 'tabBarGutter', 'prefixCls', 'navWrapper', 'tabBarPosition', 'panels', 'activeKey', 'prevIcon', 'nextIcon'],
  render: function render() {
    var h = arguments[0];

    var props = _extends({}, this.$props);
    var listeners = this.$listeners;
    return h(SaveRef, {
      attrs: {
        children: function children(saveRef, getRef) {
          return h(
            TabBarRootNode,
            _mergeJSXProps([{
              attrs: { saveRef: saveRef }
            }, { props: props, on: listeners }]),
            [h(
              ScrollableTabBarNode,
              _mergeJSXProps([{
                attrs: { saveRef: saveRef, getRef: getRef }
              }, { props: props, on: listeners }]),
              [h(TabBarTabsNode, _mergeJSXProps([{
                attrs: { saveRef: saveRef }
              }, { props: props, on: listeners }])), h(InkTabBarNode, _mergeJSXProps([{
                attrs: { saveRef: saveRef, getRef: getRef }
              }, { props: props, on: listeners }]))]
            )]
          );
        }
      }
    });
  }
};