diff --git a/src/InkTabBar.js b/src/InkTabBar.js index 9759462e5..f398d74e7 100755 --- a/src/InkTabBar.js +++ b/src/InkTabBar.js @@ -3,26 +3,19 @@ import PropTypes from 'prop-types'; import InkTabBarNode from './InkTabBarNode'; import TabBarTabsNode from './TabBarTabsNode'; import TabBarRootNode from './TabBarRootNode'; +import SaveRef from './SaveRef'; export default class InkTabBar extends React.Component { - getRef = (name) => { - return this[name]; - } - - saveRef = (name) => { - return (node) => { - if (node) { - this[name] = node; - } - }; - } - render() { return ( - - - - + + {(saveRef, getRef) => ( + + + + + )} + ); } } diff --git a/src/SaveRef.js b/src/SaveRef.js new file mode 100644 index 000000000..f4c3204d0 --- /dev/null +++ b/src/SaveRef.js @@ -0,0 +1,19 @@ +import React from 'react'; + +export default class SaveRef extends React.Component { + getRef = (name) => { + return this[name]; + } + + saveRef = (name) => { + return (node) => { + if (node) { + this[name] = node; + } + }; + } + + render() { + return this.props.children(this.saveRef, this.getRef); + } +} diff --git a/src/ScrollableInkTabBar.js b/src/ScrollableInkTabBar.js index ce6aadf6a..1f57b986f 100755 --- a/src/ScrollableInkTabBar.js +++ b/src/ScrollableInkTabBar.js @@ -3,28 +3,21 @@ import InkTabBarNode from './InkTabBarNode'; import TabBarTabsNode from './TabBarTabsNode'; import TabBarRootNode from './TabBarRootNode'; import ScrollableTabBarNode from './ScrollableTabBarNode'; +import SaveRef from './SaveRef'; export default class ScrollableInkTabBar extends React.Component { - getRef = (name) => { - return this[name]; - } - - saveRef = (name) => { - return (node) => { - if (node) { - this[name] = node; - } - }; - } - render() { return ( - - - - - - + + {(saveRef, getRef) => ( + + + + + + + )} + ); } } diff --git a/src/ScrollableTabBar.js b/src/ScrollableTabBar.js index 6a735214c..762b26d3a 100755 --- a/src/ScrollableTabBar.js +++ b/src/ScrollableTabBar.js @@ -2,27 +2,20 @@ import React from 'react'; import ScrollableTabBarNode from './ScrollableTabBarNode'; import TabBarRootNode from './TabBarRootNode'; import TabBarTabsNode from './TabBarTabsNode'; +import SaveRef from './SaveRef'; export default class ScrollableTabBar extends React.Component { - getRef = (name) => { - return this[name]; - } - - saveRef = (name) => { - return (node) => { - if (node) { - this[name] = node; - } - }; - } - render() { return ( - - - - - + + {(saveRef, getRef) => ( + + + + + + )} + ); } } diff --git a/src/SwipeableInkTabBar.js b/src/SwipeableInkTabBar.js index 0a555eeda..fc3edca03 100755 --- a/src/SwipeableInkTabBar.js +++ b/src/SwipeableInkTabBar.js @@ -3,28 +3,21 @@ import SwipeableTabBarNode from './SwipeableTabBarNode'; import TabBarSwipeableTabs from './TabBarSwipeableTabs'; import TabBarRootNode from './TabBarRootNode'; import InkTabBarNode from './InkTabBarNode'; +import SaveRef from './SaveRef' export default class SwipeableInkTabBar extends React.Component { - getRef = (name) => { - return this[name]; - } - - saveRef = (name) => { - return (node) => { - if (node) { - this[name] = node; - } - }; - } - render() { return ( - - - - - - + + {(saveRef, getRef) => ( + + + + + + + )} + ); } } diff --git a/src/TabBar.js b/src/TabBar.js index 1a59ae3a0..3cfa23e33 100644 --- a/src/TabBar.js +++ b/src/TabBar.js @@ -1,21 +1,19 @@ import React from 'react'; import TabBarRootNode from './TabBarRootNode'; import TabBarTabsNode from './TabBarTabsNode'; +import SaveRef from './SaveRef'; export default class TabBar1 extends React.Component { - saveRef = (name) => { - return (node) => { - if (node) { - this[name] = node; - } - }; - } - render() { return ( - - - + + {(saveRef) => ( + + + + )} + + ); } }