Skip to content

Commit 0a095e7

Browse files
committed
Merge branch 'master' into release
2 parents 7770877 + d4e69bd commit 0a095e7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+766
-678
lines changed

demo/src/assets/Assets.ts

-25
This file was deleted.

demo/src/configurations.js

+27-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,32 @@
1-
import {Colors, Typography, Spacings, TextField} from 'react-native-ui-lib'; // eslint-disable-line
1+
import {Assets, Colors, Typography, Spacings, TextField} from 'react-native-ui-lib'; // eslint-disable-line
22

33
export const loadDemoConfigurations = () => {
4-
require('./assets/Assets');
4+
Assets.loadAssetsGroup('icons.demo', {
5+
chevronDown: require('./assets/icons/chevronDown.png'),
6+
chevronRight: require('./assets/icons/chevronRight.png'),
7+
add: require('./assets/icons/add.png'),
8+
camera: require('./assets/icons/cameraSelected.png'),
9+
close: require('./assets/icons/close.png'),
10+
dashboard: require('./assets/icons/dashboard.png'),
11+
drag: require('./assets/icons/drag.png'),
12+
image: require('./assets/icons/image.png'),
13+
plus: require('./assets/icons/plus.png'),
14+
refresh: require('./assets/icons/refresh.png'),
15+
search: require('./assets/icons/search.png'),
16+
settings: require('./assets/icons/settings.png'),
17+
share: require('./assets/icons/share.png'),
18+
info: require('./assets/icons/info.png'),
19+
exclamation: require('./assets/icons/exclamationFillSmall.png')
20+
});
21+
22+
Assets.loadAssetsGroup('images.demo', {
23+
brokenImage: require('./assets/images/placeholderMissingImage.png')
24+
});
25+
26+
Assets.loadAssetsGroup('svgs.demo', {
27+
logo: require('./assets/svgs/headerLogo.svg').default
28+
});
29+
530
Typography.loadTypographies({
631
h1: {...Typography.text40},
732
h2: {...Typography.text50},

demo/src/demoApp.js

-11
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,6 @@ import Storage, {DEFAULT_SCREEN} from './storage';
1414
// gold: '#FFD700',
1515
// });
1616

17-
// ThemeManager.setComponentTheme('Picker', (props) => {
18-
// if (props.useNativePicker) {
19-
// return {
20-
// topBarProps: {
21-
// doneLabel: Constants.isIOS ? 'Done2' : 'OK2',
22-
// cancelLabel: Constants.isIOS ? 'Cancel2' : 'CANCEL2',
23-
// },
24-
// };
25-
// }
26-
// });
27-
2817
// const customAnimationsDefinitions = {
2918
// customAnimation1: {
3019
// from: {opacity: 0, translateY: 20},

demo/src/screens/componentScreens/ChipsInputScreen.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ export default class ChipsInputScreen extends Component {
4545

4646
this.setState({chips: newChips});
4747
}}
48+
validate={'required'}
49+
validateOnChange
50+
validationMessage={'You must add at least one chip'}
51+
marginB-10
4852
/>
4953

5054
<ChipsInput

demo/src/screens/componentScreens/DrawerScreen.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import React, {Component} from 'react';
22
import {StyleSheet, ScrollView, LayoutAnimation} from 'react-native';
3-
import {Colors, Typography, View, Drawer, Text, Button, Avatar, Badge, DrawerProps} from 'react-native-ui-lib';
3+
import {Assets, Colors, Typography, View, Drawer, Text, Button, Avatar, Badge, DrawerProps} from 'react-native-ui-lib';
44
import {gestureHandlerRootHOC} from 'react-native-gesture-handler';
55
import conversations from '../../data/conversations';
6-
import Assets from '../../assets/Assets';
76

87
import {renderBooleanOption, renderSliderOption, renderColorOption} from '../ExampleScreenPresenter';
98

demo/src/screens/componentScreens/HintsScreen.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import _ from 'lodash';
22
import React, {Component} from 'react';
33
import {Alert, ViewStyle} from 'react-native';
4-
import {Colors, View, Text, Hint, Button, Incubator} from 'react-native-ui-lib';
4+
import {Colors, View, Text, Hint, Button, Assets, Incubator} from 'react-native-ui-lib';
55
import {renderMultipleSegmentOptions, renderBooleanOption} from '../ExampleScreenPresenter';
6-
import Assets from '../../assets/Assets';
76

87
const settingsIcon = require('../../assets/icons/settings.png');
98
const reactions = ['❤️', '😮', '😔', '😂', '😡'];

demo/src/screens/componentScreens/ImageScreen.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import React, {Component} from 'react';
22
import {ScrollView} from 'react-native';
3-
import {View, Text, Icon, Image, Colors, OverlayTypes} from 'react-native-ui-lib';
3+
import {View, Text, Icon, Image, Colors, Assets, OverlayTypes} from 'react-native-ui-lib';
44
import {renderBooleanOption, renderRadioGroup, renderSliderOption} from '../ExampleScreenPresenter';
5-
import Assets from '../../assets/Assets';
65

76
const IMAGE_URL =
87
'https://images.pexels.com/photos/748837/pexels-photo-748837.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260';

demo/src/screens/componentScreens/ModalScreen.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import React, {Component} from 'react';
22
import {Alert, StyleSheet} from 'react-native';
33
import {Navigation} from 'react-native-navigation';
4-
import {Colors, Carousel, PageControl, Modal, View, Text} from 'react-native-ui-lib'; // eslint-disable-line
5-
import Assets from '../../assets/Assets';
4+
import {Colors, Carousel, PageControl, Modal, View, Text, Assets} from 'react-native-ui-lib'; // eslint-disable-line
65

76
const BUTTONS_HIT_SLOP = {right: 5, left: 5, top: 10, bottom: 10};
87
interface ModalScreenProps {

demo/src/screens/componentScreens/PickerScreen.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export default class PickerScreen extends Component {
9191
language2: options[2].value,
9292
languages: [],
9393
option: undefined,
94-
nativePickerValue: 'java',
94+
wheelPickerValue: 'java',
9595
dialogPickerValue: 'java',
9696
customModalValues: [],
9797
filter: filters[0].value,
@@ -157,8 +157,8 @@ export default class PickerScreen extends Component {
157157
label="Wheel Picker"
158158
placeholder="Pick a Language"
159159
useWheelPicker
160-
value={this.state.nativePickerValue}
161-
onChange={nativePickerValue => this.setState({nativePickerValue})}
160+
value={this.state.wheelPickerValue}
161+
onChange={wheelPickerValue => this.setState({wheelPickerValue})}
162162
trailingAccessory={<Icon source={dropdown}/>}
163163
items={options}
164164
/>

demo/src/screens/componentScreens/SortableListScreen.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import {
88
TouchableOpacity,
99
Text,
1010
Icon,
11+
Assets,
1112
Colors,
1213
Button
1314
} from 'react-native-ui-lib';
14-
import Assets from '../../assets/Assets';
1515
import {renderHeader} from '../ExampleScreenPresenter';
1616

1717
interface Item extends SortableListItemProps {

demo/src/screens/componentScreens/TabControllerScreen/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import _ from 'lodash';
22
import React, {Component} from 'react';
33
import {ActivityIndicator, StyleSheet} from 'react-native';
44
import {
5+
Assets,
56
TabController,
67
Colors,
78
View,
@@ -11,7 +12,6 @@ import {
1112
TabControllerImperativeMethods
1213
} from 'react-native-ui-lib';
1314
import {gestureHandlerRootHOC} from 'react-native-gesture-handler';
14-
import Assets from '../../../assets/Assets';
1515

1616
import Tab1 from './tab1';
1717
import Tab2 from './tab2';

demo/src/screens/componentScreens/TextFieldScreen.tsx

+41-9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, {Component} from 'react';
22
import {ScrollView, ActivityIndicator} from 'react-native';
33
import {
4+
Assets,
45
Colors,
56
Spacings,
67
View,
@@ -11,12 +12,11 @@ import {
1112
TextFieldRef,
1213
FieldContextType,
1314
TextFieldProps,
14-
SegmentedControl
15+
SegmentedControl,
16+
Icon
1517
} from 'react-native-ui-lib';
16-
import Assets from '../../assets/Assets';
1718
const {KeyboardAwareInsetsView} = Keyboard;
1819
const priceFormatter = Intl.NumberFormat('en-US');
19-
const validationIcon = require('../../assets/icons/exclamationFillSmall.png');
2020

2121
export default class TextFieldScreen extends Component {
2222
input = React.createRef<TextFieldRef>();
@@ -167,7 +167,7 @@ export default class TextFieldScreen extends Component {
167167
};
168168

169169
renderValidationExample() {
170-
const {errorPosition} = this.state;
170+
const {errorPosition, preset} = this.state;
171171

172172
return (
173173
<>
@@ -178,7 +178,7 @@ export default class TextFieldScreen extends Component {
178178
<SegmentedControl segments={[{label: 'Bottom'}, {label: 'Top'}]} onChangeIndex={this.onChangeIndexValidation}/>
179179
</View>
180180
</View>
181-
181+
182182
<TextField
183183
value={this.state.value}
184184
onChangeText={value => this.setState({value})}
@@ -204,7 +204,9 @@ export default class TextFieldScreen extends Component {
204204
containerStyle={{flex: 1}}
205205
validationMessagePosition={errorPosition}
206206
helperText={'Enter first and last name'}
207-
validationIcon={{source: validationIcon, style: {marginTop: 1}}}
207+
validationIcon={{source: Assets.icons.demo.exclamation, style: {marginTop: 1}}}
208+
topTrailingAccessory={<Icon source={Assets.icons.demo.info} size={16}/>}
209+
preset={preset}
208210
/>
209211
<Button
210212
outline
@@ -351,6 +353,26 @@ export default class TextFieldScreen extends Component {
351353
);
352354
}
353355

356+
renderClearButtonExample() {
357+
return (
358+
<>
359+
<Text h3 marginB-s3>
360+
Clear Button
361+
</Text>
362+
363+
<TextField
364+
label="Description"
365+
placeholder="Enter text..."
366+
showClearButton
367+
value={this.state.value}
368+
onChangeText={value => this.setState({value})}
369+
trailingAccessory={<Icon source={Assets.icons.demo.search}/>}
370+
// multiline
371+
/>
372+
</>
373+
);
374+
}
375+
354376
renderHintExample() {
355377
return (
356378
<>
@@ -400,7 +422,16 @@ export default class TextFieldScreen extends Component {
400422
</Text>
401423

402424
<Text marginB-s1 $textPrimary>Centered:</Text>
403-
<TextField label="PIN" placeholder="XXXX" centered/>
425+
<TextField
426+
label="PIN"
427+
placeholder="XXXX"
428+
centered
429+
topTrailingAccessory={<Icon source={Assets.icons.demo.info} size={16}/>}
430+
validate={'required'}
431+
validationMessage={'This field is required'}
432+
validateOnBlur
433+
validationMessagePosition={this.state.errorPosition}
434+
/>
404435

405436
<Text marginB-s1 $textPrimary>Inline:</Text>
406437
<View row>
@@ -414,15 +445,16 @@ export default class TextFieldScreen extends Component {
414445

415446
render() {
416447
return (
417-
<ScrollView keyboardShouldPersistTaps="always" showsVerticalScrollIndicator={false}>
418-
<View flex padding-page>
448+
<ScrollView showsVerticalScrollIndicator={false} keyboardShouldPersistTaps="always">
449+
<View padding-page>
419450
<Text h1 marginB-s4>TextField</Text>
420451

421452
{this.renderDefaultExample()}
422453
{this.renderPresetExample()}
423454
{this.renderPlaceholdersExample()}
424455
{this.renderValidationExample()}
425456
{this.renderHintExample()}
457+
{this.renderClearButtonExample()}
426458
{this.renderCherCounterExample()}
427459
{this.renderAccessoriesExample()}
428460
{this.renderStateColorsExample()}

demo/src/screens/componentScreens/TimelineScreen.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, {useCallback, useRef, useState} from 'react';
22
import {StyleSheet, ScrollView} from 'react-native';
3-
import {Colors, Timeline, View, Card, Text, Button} from 'react-native-ui-lib';
4-
import Assets from '../../assets/Assets';
3+
import {Assets, Colors, Timeline, View, Card, Text, Button} from 'react-native-ui-lib';
4+
55
const contents = [
66
'CURRENT (default) state with dashed line.\nAligned to title',
77
'SUCCESS state with label.',

demo/src/screens/incubatorScreens/IncubatorToastScreen.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import React, {Component} from 'react';
22
import {ScrollView, StyleSheet} from 'react-native';
3-
import {Colors, View, Button, Text, Incubator} from 'react-native-ui-lib';
3+
import {Assets, Colors, View, Button, Text, Incubator} from 'react-native-ui-lib';
44
import {renderMultipleSegmentOptions, renderBooleanOption, renderRadioGroup} from '../ExampleScreenPresenter';
55
import {gestureHandlerRootHOC} from 'react-native-gesture-handler';
6-
import Assets from '../../assets/Assets';
6+
77
const {Toast} = Incubator;
88

99
const TOAST_ACTIONS = {

demo/src/screens/incubatorScreens/PanViewScreen.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, {Component} from 'react';
22
import {StyleSheet, ScrollView} from 'react-native';
33
import {GestureHandlerRootView, FlatList} from 'react-native-gesture-handler';
44
import {
5+
Assets,
56
View,
67
Text,
78
Colors,
@@ -14,7 +15,7 @@ import {
1415
TouchableOpacity
1516
} from 'react-native-ui-lib';
1617
const {PanView} = Incubator;
17-
import Assets from '../../assets/Assets';
18+
1819
interface Item {
1920
value: string;
2021
label: string;

demo/src/screens/realExamples/Pinterest/index.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import React, {Component} from 'react';
22
import {StyleSheet, ScrollView} from 'react-native';
3-
import {Colors, Spacings, View, Card, Text, Image, Button, Constants} from 'react-native-ui-lib';
3+
import {Assets, Colors, Spacings, View, Card, Text, Image, Button, Constants} from 'react-native-ui-lib';
44
import _ from 'lodash';
5-
import Assets from '../../../assets/Assets';
65

76
import './configurations';
87

demo/src/screens/realExamples/ProductPage/index.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import React, {Component} from 'react';
22
import {ScrollView} from 'react-native';
3-
import {View, Text, Icon, Colors, Image, Button, Carousel, Picker, PickerValue} from 'react-native-ui-lib';
3+
import {Assets, View, Text, Icon, Colors, Image, Button, Carousel, Picker, PickerValue} from 'react-native-ui-lib';
44
import _ from 'lodash';
5-
import Assets from '../../../assets/Assets';
65

76
const colorOptions = [
87
{label: 'Red', value: 'red', color: Colors.red30},

docs/getting-started/setup.md

-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ The following are optional dependencies:
4444
- @react-native-community/blur
4545
- @react-native-community/datetimepicker
4646
- @react-native-community/netinfo
47-
- @react-native-picker/picker
4847

4948

5049
## Install Native Dependencies
@@ -60,7 +59,6 @@ Some of the components are using the native dependencies listed below - those ar
6059
- "@react-native-community/blur": ">=3.4.1" (required for Card component when passing `enableBlur` prop)
6160
- "@react-native-community/datetimepicker": "^2.1.0"
6261
- "@react-native-community/netinfo": "^5.6.2" (required for ConnectionStatusBar component)
63-
- "@react-native-picker/picker": "^1.9.4" (required for Picker component when passing `useNativePicker` prop)
6462

6563
## Demo App
6664

scripts/prReleaseNotesCommon.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,12 @@ function getPRsByType(PRs, categories) {
9191
const category = categories.find(category => {
9292
return pr.branch.toLowerCase().startsWith(category.branch);
9393
});
94-
if (category) {
95-
const foundCategory = categorizedPRs.find(cat => cat.name === category.name);
96-
foundCategory.PRs.push(pr);
97-
} else if (isSilent(pr)) {
94+
if (isSilent(pr)) {
9895
const silentCategory = categorizedPRs.find(cat => cat.name === 'silent');
9996
silentCategory.PRs.push(pr);
97+
} else if (category) {
98+
const foundCategory = categorizedPRs.find(cat => cat.name === category.name);
99+
foundCategory.PRs.push(pr);
100100
} else {
101101
const otherCategory = categorizedPRs.find(cat => cat.name === 'others');
102102
otherCategory.PRs.push(pr);

0 commit comments

Comments
 (0)