Skip to content

Commit 763f715

Browse files
authored
setitem height, number of visible rows as defaults (#2916)
* setitem height, number of visible rows as defaults * fiexed small issues * added test for default item height and number of visible rows values * revert the defaults * moved the defaults test to be first
1 parent 2869bc5 commit 763f715

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

src/components/WheelPicker/WheelPicker.driver.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {FlatListProps} from 'react-native';
2-
import {WheelPickerProps, WheelPickerItemProps} from './index';
2+
import {WheelPickerProps, WheelPickerItemProps, ITEM_HEIGHT} from './index';
33
import {useComponentDriver, ComponentProps} from '../../testkit/new/Component.driver';
44
import {useScrollableDriver} from '../../testkit/new/useScrollable.driver';
55
import {TextDriver} from '../../components/Text/Text.driver.new';
@@ -11,10 +11,12 @@ export const WheelPickerDriver = (props: ComponentProps) => {
1111
renderTree: props.renderTree,
1212
testID: `${props.testID}.list`
1313
}));
14-
15-
const moveToItem = (index: number, numberOfRows: number, itemHeight: number) => {
14+
15+
const itemsLength = listDriver.getProps().data?.length ?? 0;
16+
17+
const moveToItem = (index: number, itemHeight: number = ITEM_HEIGHT, numberOfRows: number = itemsLength) => {
1618
listDriver.triggerEvent('onMomentumScrollEnd', {
17-
contentOffset: {x: 0, y: itemHeight * index},
19+
contentOffset: {x: 0, y: itemHeight * index},
1820
contentSize: {height: numberOfRows * itemHeight, width: 400},
1921
layoutMeasurement: {height: 100, width: 400}
2022
});

src/components/WheelPicker/__tests__/index.spec.tsx

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import _ from 'lodash';
22
import React from 'react';
3-
import {render/* , act, waitFor */} from '@testing-library/react-native';
3+
import {render /* , act, waitFor */} from '@testing-library/react-native';
44
import {Colors} from '../../../style';
55
import WheelPicker from '../index';
66
import {WheelPickerDriver} from '../WheelPicker.driver';
@@ -39,14 +39,26 @@ describe('WheelPicker', () => {
3939
expect(driver.getListHeight()).toBe(NUM_OF_ROWS * ITEM_HEIGHT);
4040
});
4141

42+
it('should call onChange after scrolling ends with default itemHeight and numberOfRows', () => {
43+
const props = {itemHeight: undefined, numberOfVisibleRows: undefined};
44+
const renderTree = render(<TestCase {...props}/>);
45+
const driver = WheelPickerDriver({renderTree, testID});
46+
47+
driver.moveToItem(4);
48+
expect(onChange).toHaveBeenCalledWith(4, 4);
49+
50+
driver.moveToItem(7);
51+
expect(onChange).toHaveBeenCalledWith(7, 7);
52+
});
53+
4254
it('should call onChange after scrolling ends', () => {
4355
const renderTree = render(<TestCase/>);
4456
const driver = WheelPickerDriver({renderTree, testID});
4557

46-
driver.moveToItem(4, NUM_OF_ROWS, ITEM_HEIGHT);
58+
driver.moveToItem(4, ITEM_HEIGHT);
4759
expect(onChange).toHaveBeenCalledWith(4, 4);
4860

49-
driver.moveToItem(7, NUM_OF_ROWS, ITEM_HEIGHT);
61+
driver.moveToItem(7, ITEM_HEIGHT);
5062
expect(onChange).toHaveBeenCalledWith(7, 7);
5163
});
5264
});
@@ -88,7 +100,7 @@ describe('WheelPicker', () => {
88100
// const renderTree = render(<TestCase/>);
89101
// const index = 1;
90102
// const driver = WheelPickerItemDriver({renderTree, testID: `${index}`});
91-
103+
92104
// driver.press();
93105

94106
// expect(await onChange).toHaveBeenCalledTimes(1);
@@ -99,7 +111,7 @@ describe('WheelPicker', () => {
99111
// const renderTree = render(<TestCase/>);
100112
// const index = 0;
101113
// const driver = WheelPickerItemDriver({renderTree, testID: `${index}`});
102-
114+
103115
// driver.press();
104116

105117
// expect(onChange).not.toHaveBeenCalledTimes(1);

src/components/WheelPicker/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {WheelPickerAlign} from './types';
2323
export {WheelPickerAlign};
2424

2525
const AnimatedFlatList = Animated.createAnimatedComponent<FlatListProps<ItemProps>>(FlatList);
26+
export const ITEM_HEIGHT = 44;
2627

2728
export interface WheelPickerProps {
2829
/**
@@ -101,7 +102,7 @@ export interface WheelPickerProps {
101102

102103
const WheelPicker = ({
103104
items: propItems,
104-
itemHeight = 44,
105+
itemHeight = ITEM_HEIGHT,
105106
numberOfVisibleRows = 5,
106107
activeTextColor = Colors.$textPrimary,
107108
inactiveTextColor,

0 commit comments

Comments
 (0)