|
| 1 | +import React,{Component} from 'react'; |
1 | 2 | import { |
2 | | - findNodeHandle, |
3 | | - NativeModules, |
4 | | -} from 'react-native' |
| 3 | + findNodeHandle, |
| 4 | + NativeModules, |
| 5 | + Platform, |
| 6 | + ListView, |
| 7 | +} from 'react-native'; |
| 8 | +import MJScrollView from './MJScrollView' |
| 9 | +const RCTMJScrollViewManager = NativeModules.MJScrollViewManager; |
| 10 | +var DEFAULT_PAGE_SIZE = 1; |
| 11 | +var DEFAULT_INITIAL_ROWS = 10; |
| 12 | +var DEFAULT_SCROLL_RENDER_AHEAD = 1000; |
| 13 | +var DEFAULT_END_REACHED_THRESHOLD = 1000; |
5 | 14 |
|
6 | | -const ListView = require('react-native/Libraries/Lists/ListView/ListView') |
7 | | - |
8 | | -const RCTMJScrollViewManager = NativeModules.MJScrollViewManager |
9 | | - |
10 | | -module.exports = class MJListView extends ListView { |
11 | | - _measureAndUpdateScrollProps = () => { |
12 | | - var scrollComponent = this.getScrollResponder(); |
13 | | - if (!scrollComponent || !scrollComponent.getInnerViewNode) { |
14 | | - return; |
| 15 | +class MJListView extends ListView { |
| 16 | + static defaultProps = { |
| 17 | + initialListSize: DEFAULT_INITIAL_ROWS, |
| 18 | + pageSize: DEFAULT_PAGE_SIZE, |
| 19 | + renderScrollComponent: props => <MJScrollView {...props} />, |
| 20 | + scrollRenderAheadDistance: DEFAULT_SCROLL_RENDER_AHEAD, |
| 21 | + onEndReachedThreshold: DEFAULT_END_REACHED_THRESHOLD, |
| 22 | + stickySectionHeadersEnabled: Platform.OS === 'ios', |
| 23 | + stickyHeaderIndices: [], |
15 | 24 | } |
16 | 25 |
|
17 | | - RCTMJScrollViewManager && |
18 | | - RCTMJScrollViewManager.calculateChildFrames && |
19 | | - RCTMJScrollViewManager.calculateChildFrames( |
20 | | - findNodeHandle(scrollComponent), |
21 | | - this._updateVisibleRows, |
22 | | - ) |
23 | | - } |
| 26 | + _measureAndUpdateScrollProps = () => { |
| 27 | + var scrollComponent = this.getScrollResponder(); |
| 28 | + if (!scrollComponent || !scrollComponent.getInnerViewNode) { |
| 29 | + return; |
| 30 | + } |
| 31 | + RCTMJScrollViewManager && |
| 32 | + RCTMJScrollViewManager.calculateChildFrames && |
| 33 | + RCTMJScrollViewManager.calculateChildFrames( |
| 34 | + findNodeHandle(scrollComponent), |
| 35 | + this._updateVisibleRows, |
| 36 | + ) |
| 37 | + } |
24 | 38 | } |
| 39 | + |
| 40 | +module.exports = Platform.OS === 'ios' ? MJListView : ListView; |
0 commit comments