1 |
|
2 |
|
3 |
|
4 |
|
5 | import React from 'react';
|
6 | import ReactDOM from 'react-dom';
|
7 | import PropTypes from 'prop-types';
|
8 | import InkTabBarNode from './InkTabBarNode';
|
9 | import TabBarTabsNode from './TabBarTabsNode';
|
10 | import TabBarRootNode from './TabBarRootNode';
|
11 | import ScrollableTabBarNode from './ScrollableTabBarNode';
|
12 | import SaveRef from './SaveRef';
|
13 |
|
14 | export default class ScrollableInkTabBar extends React.Component {
|
15 | componentDidMount(){
|
16 | ReactDOM.findDOMNode(this).addEventListener('DNDclick', (e) => {
|
17 | if(e && e.detail && e.detail.key){
|
18 | this.onTabClick.call(this, e.detail.key)
|
19 | }
|
20 | });
|
21 | }
|
22 | componentWillUnmount(){
|
23 | ReactDOM.findDOMNode(this).removeEventListener('DNDclick',(e) => {
|
24 | if(e && e.detail && e.detail.key){
|
25 | this.onTabClick.call(this, e.detail.key)
|
26 | }
|
27 | });
|
28 | }
|
29 | render() {
|
30 | const { children: renderTabBarNode, ...restProps } = this.props;
|
31 | return (
|
32 | <SaveRef>
|
33 | {(saveRef, getRef) => (
|
34 | <TabBarRootNode saveRef={saveRef} {...restProps}>
|
35 | <ScrollableTabBarNode saveRef={saveRef} getRef={getRef} {...restProps}>
|
36 | <TabBarTabsNode saveRef={saveRef} renderTabBarNode={renderTabBarNode} {...restProps} />
|
37 | <InkTabBarNode saveRef={saveRef} getRef={getRef} {...restProps} />
|
38 | </ScrollableTabBarNode>
|
39 | </TabBarRootNode>
|
40 | )}
|
41 | </SaveRef>
|
42 | );
|
43 | }
|
44 | }
|
45 |
|
46 | ScrollableInkTabBar.propTypes = {
|
47 | children: PropTypes.func,
|
48 | };
|