unicorn-demo-app 6.17.2 → 6.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -40,6 +40,12 @@ const filters = [
|
|
|
40
40
|
{label: 'Scheduled', value: 3}
|
|
41
41
|
];
|
|
42
42
|
|
|
43
|
+
const schemes = [
|
|
44
|
+
{label: 'Default', value: 1},
|
|
45
|
+
{label: 'Light', value: 2},
|
|
46
|
+
{label: 'Dark', value: 3}
|
|
47
|
+
];
|
|
48
|
+
|
|
43
49
|
export default class PickerScreen extends Component {
|
|
44
50
|
picker = React.createRef<PickerMethods>();
|
|
45
51
|
state = {
|
|
@@ -51,6 +57,7 @@ export default class PickerScreen extends Component {
|
|
|
51
57
|
nativePickerValue: 'java',
|
|
52
58
|
customModalValues: [],
|
|
53
59
|
filter: filters[0],
|
|
60
|
+
scheme: schemes[0].value,
|
|
54
61
|
contact: 0
|
|
55
62
|
};
|
|
56
63
|
|
|
@@ -299,6 +306,39 @@ export default class PickerScreen extends Component {
|
|
|
299
306
|
style={{alignSelf: 'flex-start'}}
|
|
300
307
|
onPress={() => this.picker.current?.openExpandable?.()}
|
|
301
308
|
/>
|
|
309
|
+
|
|
310
|
+
<Text text60 marginT-s5>
|
|
311
|
+
Different Field Types
|
|
312
|
+
</Text>
|
|
313
|
+
<Text text80 marginB-s5>(Form/Filter/Settings)</Text>
|
|
314
|
+
|
|
315
|
+
<Picker
|
|
316
|
+
migrate
|
|
317
|
+
migrateTextField
|
|
318
|
+
value={this.state.filter}
|
|
319
|
+
onChange={value => this.setState({filter: value})}
|
|
320
|
+
placeholder="Filter posts"
|
|
321
|
+
fieldType={Picker.fieldTypes.filter}
|
|
322
|
+
marginB-s3
|
|
323
|
+
>
|
|
324
|
+
{filters.map(filter => (
|
|
325
|
+
<Picker.Item key={filter.value} {...filter}/>
|
|
326
|
+
))}
|
|
327
|
+
</Picker>
|
|
328
|
+
|
|
329
|
+
<Picker
|
|
330
|
+
migrate
|
|
331
|
+
migrateTextField
|
|
332
|
+
value={this.state.scheme}
|
|
333
|
+
onChange={value => this.setState({scheme: value})}
|
|
334
|
+
label="Color Scheme"
|
|
335
|
+
placeholder="Filter posts"
|
|
336
|
+
fieldType={Picker.fieldTypes.settings}
|
|
337
|
+
>
|
|
338
|
+
{schemes.map(scheme => (
|
|
339
|
+
<Picker.Item key={scheme.value} {...scheme}/>
|
|
340
|
+
))}
|
|
341
|
+
</Picker>
|
|
302
342
|
</View>
|
|
303
343
|
</ScrollView>
|
|
304
344
|
);
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import React, {Component} from 'react';
|
|
2
2
|
import {StyleSheet, ScrollView} from 'react-native';
|
|
3
3
|
import {Colors, View, Text, Icon, Slider, GradientSlider, ColorSliderGroup, Constants} from 'react-native-ui-lib';
|
|
4
|
-
|
|
5
|
-
const INITIAL_VALUE = 0;
|
|
6
|
-
const COLOR = Colors.blue30;
|
|
4
|
+
import {renderBooleanOption} from '../ExampleScreenPresenter';
|
|
7
5
|
|
|
8
6
|
interface SliderScreenProps {
|
|
9
7
|
componentId: string;
|
|
@@ -13,18 +11,28 @@ interface SliderScreenState {
|
|
|
13
11
|
alpha: number;
|
|
14
12
|
color: string;
|
|
15
13
|
sliderValue: number;
|
|
14
|
+
sliderMinValue: number;
|
|
15
|
+
sliderMaxValue: number;
|
|
16
|
+
forceLTR: boolean;
|
|
16
17
|
}
|
|
17
18
|
|
|
19
|
+
const INITIAL_VALUE = 0;
|
|
20
|
+
const COLOR = Colors.blue30;
|
|
21
|
+
|
|
18
22
|
export default class SliderScreen extends Component<SliderScreenProps, SliderScreenState> {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
state = {
|
|
24
|
+
alpha: 1,
|
|
25
|
+
color: COLOR,
|
|
26
|
+
sliderValue: INITIAL_VALUE,
|
|
27
|
+
sliderMinValue: 0,
|
|
28
|
+
sliderMaxValue: 100,
|
|
29
|
+
forceLTR: false
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
onSliderRangeChange = (values: {min: number, max: number}) => {
|
|
33
|
+
const {min, max} = values;
|
|
34
|
+
this.setState({sliderMinValue: min, sliderMaxValue: max});
|
|
35
|
+
};
|
|
28
36
|
|
|
29
37
|
onSliderValueChange = (value: number) => {
|
|
30
38
|
this.setState({sliderValue: value});
|
|
@@ -38,17 +46,26 @@ export default class SliderScreen extends Component<SliderScreenProps, SliderScr
|
|
|
38
46
|
console.warn('onGroupValueChange: ', value);
|
|
39
47
|
};
|
|
40
48
|
|
|
49
|
+
getReverseStyle = () => {
|
|
50
|
+
return Constants.isRTL && this.state.forceLTR && styles.ltr;
|
|
51
|
+
}
|
|
52
|
+
|
|
41
53
|
render() {
|
|
42
|
-
const {color, alpha, sliderValue} = this.state;
|
|
54
|
+
const {color, alpha, sliderValue, sliderMinValue, sliderMaxValue, forceLTR} = this.state;
|
|
43
55
|
|
|
44
56
|
return (
|
|
45
57
|
<ScrollView showsVerticalScrollIndicator={false}>
|
|
46
58
|
<View flex padding-20>
|
|
47
|
-
<Text
|
|
59
|
+
<Text text40 $textDefault marginB-20>
|
|
48
60
|
Sliders
|
|
49
61
|
</Text>
|
|
50
62
|
|
|
51
|
-
|
|
63
|
+
{Constants.isRTL && renderBooleanOption.call(this, 'Force LTR', 'forceLTR')}
|
|
64
|
+
|
|
65
|
+
<Text $textDefault text70BO marginB-10>
|
|
66
|
+
Default slider
|
|
67
|
+
</Text>
|
|
68
|
+
<View row centerV style={this.getReverseStyle()}>
|
|
52
69
|
<Icon assetName={'search'} style={styles.image}/>
|
|
53
70
|
<Slider
|
|
54
71
|
onValueChange={this.onSliderValueChange}
|
|
@@ -57,14 +74,14 @@ export default class SliderScreen extends Component<SliderScreenProps, SliderScr
|
|
|
57
74
|
maximumValue={100}
|
|
58
75
|
step={1}
|
|
59
76
|
containerStyle={styles.sliderContainer}
|
|
60
|
-
disableRTL
|
|
77
|
+
disableRTL={forceLTR}
|
|
61
78
|
/>
|
|
62
|
-
<Text bodySmall $textNeutral style={styles.text}>
|
|
63
|
-
{sliderValue}
|
|
79
|
+
<Text bodySmall $textNeutral style={styles.text} numberOfLines={1}>
|
|
80
|
+
${sliderValue}
|
|
64
81
|
</Text>
|
|
65
82
|
</View>
|
|
66
83
|
|
|
67
|
-
<Text $textDefault marginT-30>
|
|
84
|
+
<Text $textDefault text70BO marginT-30>
|
|
68
85
|
Negatives
|
|
69
86
|
</Text>
|
|
70
87
|
<Slider
|
|
@@ -84,12 +101,12 @@ export default class SliderScreen extends Component<SliderScreenProps, SliderScr
|
|
|
84
101
|
containerStyle={styles.slider}
|
|
85
102
|
/>
|
|
86
103
|
|
|
87
|
-
<Text $textDefault marginT-20>
|
|
104
|
+
<Text $textDefault text70BO marginT-20>
|
|
88
105
|
Disabled
|
|
89
106
|
</Text>
|
|
90
107
|
<Slider minimumValue={100} maximumValue={200} value={120} containerStyle={styles.slider} disabled/>
|
|
91
108
|
|
|
92
|
-
<Text $textDefault marginT-15>
|
|
109
|
+
<Text $textDefault text70BO marginT-15>
|
|
93
110
|
Custom with Steps
|
|
94
111
|
</Text>
|
|
95
112
|
<Slider
|
|
@@ -106,7 +123,28 @@ export default class SliderScreen extends Component<SliderScreenProps, SliderScr
|
|
|
106
123
|
maximumTrackTintColor={Colors.violet70}
|
|
107
124
|
/>
|
|
108
125
|
|
|
109
|
-
<Text $textDefault
|
|
126
|
+
<Text $textDefault text70BO marginV-15>
|
|
127
|
+
Range slider
|
|
128
|
+
</Text>
|
|
129
|
+
<View row spread style={this.getReverseStyle()}>
|
|
130
|
+
<Text bodySmall $textNeutral>
|
|
131
|
+
min. {sliderMinValue}%
|
|
132
|
+
</Text>
|
|
133
|
+
<Text bodySmall $textNeutral>
|
|
134
|
+
max. {sliderMaxValue}%
|
|
135
|
+
</Text>
|
|
136
|
+
</View>
|
|
137
|
+
<Slider
|
|
138
|
+
useRange
|
|
139
|
+
onRangeChange={this.onSliderRangeChange}
|
|
140
|
+
value={INITIAL_VALUE}
|
|
141
|
+
minimumValue={0}
|
|
142
|
+
maximumValue={100}
|
|
143
|
+
step={1}
|
|
144
|
+
disableRTL={forceLTR}
|
|
145
|
+
/>
|
|
146
|
+
|
|
147
|
+
<Text $textDefault text70BO marginT-15>
|
|
110
148
|
Gradient Sliders
|
|
111
149
|
</Text>
|
|
112
150
|
<View row centerV>
|
|
@@ -137,7 +175,7 @@ export default class SliderScreen extends Component<SliderScreenProps, SliderScr
|
|
|
137
175
|
</View>
|
|
138
176
|
</View>
|
|
139
177
|
|
|
140
|
-
<Text $textDefault
|
|
178
|
+
<Text $textDefault text70BO marginV-15>
|
|
141
179
|
Color Slider Group
|
|
142
180
|
</Text>
|
|
143
181
|
<ColorSliderGroup
|
|
@@ -189,7 +227,9 @@ const styles = StyleSheet.create({
|
|
|
189
227
|
activeThumb: {
|
|
190
228
|
width: 40,
|
|
191
229
|
height: 40,
|
|
192
|
-
borderRadius: 20
|
|
230
|
+
borderRadius: 20,
|
|
231
|
+
borderColor: Colors.yellow30,
|
|
232
|
+
borderWidth: 2
|
|
193
233
|
},
|
|
194
234
|
box: {
|
|
195
235
|
width: 20,
|