Skip to content

Commit f585b05

Browse files
authored
Add new type for Stepper component - floating (#3247)
* Add new type for Stepper component - floating * Add example to a floating stepper on top of an image
1 parent 880856e commit f585b05

File tree

14 files changed

+119
-65
lines changed

14 files changed

+119
-65
lines changed
Lines changed: 84 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
import React, {Component} from 'react';
2-
import {View, Text, Stepper} from 'react-native-ui-lib'; //eslint-disable-line
2+
import {ScrollView} from 'react-native';
3+
import {View, Text, Stepper, type StepperType, Image} from 'react-native-ui-lib'; //eslint-disable-line
4+
import {renderMultipleSegmentOptions} from '../ExampleScreenPresenter';
5+
6+
const IMAGE_URL =
7+
'https://images.pexels.com/photos/2529148/pexels-photo-2529148.jpeg?auto=compress&cs=tinysrgb&w=600&&dpr=1';
38

49
export default class StepperScreen extends Component {
510
state = {
6-
stepperValue: 1
11+
stepperValue: 1,
12+
stepperType: 'default' as StepperType
713
};
814

915
stepperProps = {
@@ -17,73 +23,96 @@ export default class StepperScreen extends Component {
1723
};
1824

1925
render() {
20-
const {stepperValue} = this.state;
26+
const {stepperValue, stepperType} = this.state;
2127

2228
return (
23-
<View padding-page>
24-
<Text text40 $textDefault marginB-20>
25-
Stepper
26-
</Text>
29+
<ScrollView>
30+
<View padding-page>
31+
<Text text40 $textDefault>
32+
Stepper
33+
</Text>
2734

28-
<View centerV>
29-
<View row spread centerV>
30-
<Text text70 $textDefault>
31-
Default
32-
</Text>
33-
<Stepper/>
34-
</View>
35+
{renderMultipleSegmentOptions.call(this, 'Stepper Type', 'stepperType', [
36+
{label: 'Default', value: 'default'},
37+
{label: 'Floating', value: 'floating'}
38+
])}
3539

36-
<View row spread centerV marginT-30>
37-
<Text text70 $textDefault>
38-
Disabled
39-
</Text>
40-
<Stepper disabled/>
41-
</View>
42-
43-
<View row spread marginT-30>
44-
<Text text70 $textDefault>
45-
Step (0.5)
46-
</Text>
47-
<Stepper step={0.5}/>
48-
</View>
49-
50-
<View row spread marginT-30>
51-
<Text text70 $textDefault>
52-
Small
53-
</Text>
54-
<Stepper small/>
55-
</View>
56-
57-
<View marginT-30>
40+
<View centerV marginT-s3>
5841
<View row spread centerV>
5942
<Text text70 $textDefault>
60-
Custom
43+
Default
6144
</Text>
62-
<Stepper
63-
onValueChange={this.onValueChange}
64-
maxValue={this.stepperProps.maxValue}
65-
minValue={this.stepperProps.minValue}
66-
value={stepperValue}
67-
testID={'Stepper1'}
68-
/>
45+
<Stepper type={stepperType}/>
6946
</View>
70-
<View padding-5>
71-
<Text text80M $textDefault>
72-
Stepper value: {stepperValue}
73-
</Text>
74-
<Text $textDefault marginT-3>
75-
Initial value: {this.stepperProps.value}
47+
48+
<View row spread centerV marginT-30>
49+
<Text text70 $textDefault>
50+
Disabled
7651
</Text>
77-
<Text $textDefault marginT-3>
78-
Min value: {this.stepperProps.minValue}
52+
<Stepper disabled type={stepperType}/>
53+
</View>
54+
55+
<View row spread marginT-30>
56+
<Text text70 $textDefault>
57+
Step (0.5)
7958
</Text>
80-
<Text $textDefault marginT-3>
81-
Max value: {this.stepperProps.maxValue}
59+
<Stepper step={0.5} type={stepperType}/>
60+
</View>
61+
62+
<View row spread marginT-30>
63+
<Text text70 $textDefault>
64+
Small
8265
</Text>
66+
<Stepper small type={stepperType}/>
67+
</View>
68+
69+
<View marginT-30>
70+
<View row spread centerV>
71+
<Text text70 $textDefault>
72+
Custom
73+
</Text>
74+
<Stepper
75+
type={stepperType}
76+
onValueChange={this.onValueChange}
77+
maxValue={this.stepperProps.maxValue}
78+
minValue={this.stepperProps.minValue}
79+
value={stepperValue}
80+
testID={'Stepper1'}
81+
/>
82+
</View>
83+
<View padding-5>
84+
<Text text80M $textDefault>
85+
Stepper value: {stepperValue}
86+
</Text>
87+
<Text $textDefault marginT-3>
88+
Initial value: {this.stepperProps.value}
89+
</Text>
90+
<Text $textDefault marginT-3>
91+
Min value: {this.stepperProps.minValue}
92+
</Text>
93+
<Text $textDefault marginT-3>
94+
Max value: {this.stepperProps.maxValue}
95+
</Text>
96+
</View>
8397
</View>
8498
</View>
99+
100+
<View marginT-s5 centerH>
101+
<Text text70BO marginB-s2>
102+
Floating Stepper
103+
</Text>
104+
<Image
105+
source={{uri: IMAGE_URL}}
106+
style={{width: 200, height: 200, borderRadius: 8, overflow: 'hidden'}}
107+
customOverlayContent={
108+
<View style={{position: 'absolute', top: 8, right: 8}}>
109+
<Stepper type="floating"/>
110+
</View>
111+
}
112+
/>
113+
</View>
85114
</View>
86-
</View>
115+
</ScrollView>
87116
);
88117
}
89118
}
224 Bytes
Loading
307 Bytes
Loading
329 Bytes
Loading
442 Bytes
Loading
552 Bytes
Loading
245 Bytes
Loading
346 Bytes
Loading
357 Bytes
Loading
500 Bytes
Loading

0 commit comments

Comments
 (0)