@widergy/mobile-ui 0.40.1 → 1.1.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.
Files changed (84) hide show
  1. package/CHANGELOG.md +921 -0
  2. package/lib/components/Button/index.js +10 -6
  3. package/lib/components/Button/styles.js +5 -5
  4. package/lib/components/Capture/index.js +3 -3
  5. package/lib/components/Carousel/components/CarouselComponent/index.js +2 -0
  6. package/lib/components/Carousel/components/CarouselContainer/index.js +2 -10
  7. package/lib/components/CheckList/components/CheckBoxRenderer/index.js +1 -0
  8. package/lib/components/CheckList/index.js +5 -3
  9. package/lib/components/CheckList/proptypes.js +2 -2
  10. package/lib/components/Checkbox/styles.js +3 -3
  11. package/lib/components/Dropdown/index.js +12 -10
  12. package/lib/components/FilePicker/utils.js +2 -2
  13. package/lib/components/Icon/constants.js +1 -0
  14. package/lib/components/Icon/index.js +11 -1
  15. package/lib/components/ImageIcon/index.js +8 -1
  16. package/lib/components/ImageRadio/index.js +21 -12
  17. package/lib/components/Loading/index.js +1 -0
  18. package/lib/components/Overlay/index.js +2 -10
  19. package/lib/components/PhotoAlbum/index.js +8 -9
  20. package/lib/components/Picker/index.js +2 -2
  21. package/lib/components/Portal/components/Manager/index.js +7 -4
  22. package/lib/components/RadioGroup/components/RadioButton/index.js +5 -5
  23. package/lib/components/RateChart/components/RateStagesGraph/components/Indicator/index.js +3 -3
  24. package/lib/components/RateChart/components/RateStagesGraph/components/Indicator/utils.js +1 -1
  25. package/lib/components/TransformView/constants.js +1 -1
  26. package/lib/components/TransformView/utils.js +674 -0
  27. package/lib/components/UTAutocomplete/index.js +4 -4
  28. package/lib/components/UTBanner/index.js +42 -0
  29. package/lib/components/UTBanner/styles.js +14 -0
  30. package/lib/components/UTCBUInput/index.js +2 -2
  31. package/lib/components/UTHeader/index.js +56 -0
  32. package/lib/components/UTHeader/styles.js +16 -0
  33. package/lib/components/UTMenu/components/ListView/index.js +4 -2
  34. package/lib/components/UTMenu/components/MenuOption/index.js +1 -0
  35. package/lib/components/UTMenu/index.js +3 -3
  36. package/lib/components/UTMenu/proptypes.js +2 -2
  37. package/lib/components/UTOnBoarding/components/CardContent/index.js +3 -3
  38. package/lib/components/UTOnBoarding/index.js +4 -4
  39. package/lib/components/UTPasswordField/components/PasswordValidations/index.js +2 -6
  40. package/lib/components/UTSelect/componentes/MultipleItem/index.js +1 -0
  41. package/lib/components/UTSelect/proptypes.js +1 -0
  42. package/lib/components/UTStepFeedback/components/CircleNumber/index.js +12 -10
  43. package/lib/components/UTStepFeedback/index.js +36 -37
  44. package/lib/components/UTStepper/components/Connectors/index.js +33 -0
  45. package/lib/components/UTStepper/components/Connectors/styles.js +26 -0
  46. package/lib/components/UTStepper/components/Step/index.js +50 -0
  47. package/lib/components/UTStepper/components/Step/styles.js +47 -0
  48. package/lib/components/UTStepper/index.js +34 -0
  49. package/lib/components/UTStepper/styles.js +12 -0
  50. package/lib/components/UTStepper/types.js +3 -0
  51. package/lib/components/UTSwitch/proptypes.js +1 -0
  52. package/lib/components/UTTextInput/components/BaseInput/index.js +10 -12
  53. package/lib/components/UTTextInput/proptypes.js +1 -0
  54. package/lib/components/UTTopbar/index.js +64 -0
  55. package/lib/components/UTTopbar/styles.js +16 -0
  56. package/lib/components/UTTopbar/types.js +8 -0
  57. package/lib/components/UTWorkflowContainer/index.js +10 -102
  58. package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/BottomStepHandler/index.js +4 -4
  59. package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/BottomStepHandler/styles.js +3 -3
  60. package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/Header/index.js +9 -9
  61. package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/Header/styles.js +3 -3
  62. package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/StepsHandler/components/ActionButton/index.js +2 -2
  63. package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/StepsHandler/components/ActionButton/styles.js +12 -12
  64. package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/StepsHandler/components/ActionButton/types.js +9 -9
  65. package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/StepsHandler/index.js +6 -6
  66. package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/StepsHandler/styles.js +3 -3
  67. package/lib/components/UTWorkflowContainer/versions/V0/index.js +108 -0
  68. package/lib/components/UTWorkflowContainer/{styles.js → versions/V0/styles.js} +4 -4
  69. package/lib/components/UTWorkflowContainer/versions/V1/components/BottomActions/components/ActionButton/index.js +35 -0
  70. package/lib/components/UTWorkflowContainer/versions/V1/components/BottomActions/components/ActionButton/styles.js +13 -0
  71. package/lib/components/UTWorkflowContainer/versions/V1/components/BottomActions/components/ActionButton/types.js +9 -0
  72. package/lib/components/UTWorkflowContainer/versions/V1/components/BottomActions/constants.js +2 -0
  73. package/lib/components/UTWorkflowContainer/versions/V1/components/BottomActions/index.js +110 -0
  74. package/lib/components/UTWorkflowContainer/versions/V1/components/BottomActions/styles.js +75 -0
  75. package/lib/components/UTWorkflowContainer/versions/V1/index.js +94 -0
  76. package/lib/components/UTWorkflowContainer/versions/V1/styles.js +14 -0
  77. package/lib/components/UTWorkflowContainer/versions/V1/types.js +24 -0
  78. package/lib/theming/DefaultTheme.js +1 -0
  79. package/lib/utils/fileUtils.js/index.js +20 -5
  80. package/package.json +47 -71
  81. /package/lib/components/UTWorkflowContainer/{README.md → versions/V0/README.md} +0 -0
  82. /package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/Header/utils.js +0 -0
  83. /package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/StepsHandler/constants.js +0 -0
  84. /package/lib/components/UTWorkflowContainer/{components → versions/V0/components}/StepsHandler/utils.js +0 -0
@@ -0,0 +1,13 @@
1
+ import { StyleSheet } from 'react-native';
2
+
3
+ export default StyleSheet.create({
4
+ actionButton: {
5
+ flexGrow: 1
6
+ },
7
+ button: {
8
+ width: '100%'
9
+ },
10
+ buttonContainer: {
11
+ width: '100%'
12
+ }
13
+ });
@@ -0,0 +1,9 @@
1
+ import { string, bool, func, shape, oneOf } from 'prop-types';
2
+
3
+ export default shape({
4
+ disabled: bool,
5
+ hidden: bool,
6
+ label: string,
7
+ mode: oneOf(['contained', 'outlined', 'text']),
8
+ onPress: func
9
+ });
@@ -0,0 +1,2 @@
1
+ export const NEXT = 'Siguiente';
2
+ export const RETURN = 'Anterior';
@@ -0,0 +1,110 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import _ from 'lodash';
4
+
5
+ import Label from '../../../../../Label';
6
+ import Button from '../../../../../Button';
7
+ import Icon from '../../../../../Icon';
8
+ import Checkbox from '../../../../../Checkbox';
9
+ import { MessagePropTypes, SummaryPropTypes } from '../../types';
10
+
11
+ import ActionButton from './components/ActionButton';
12
+ import ActionButtonPropTypes from './components/ActionButton/types';
13
+ import ownStyles, { ICON_SIZE } from './styles';
14
+ import { NEXT, RETURN } from './constants';
15
+
16
+ const BottomActions = ({ nextButton, returnButton, summary, message, theme }) => {
17
+ const messageIcon = message?.icon;
18
+ const MESSAGE_ICON_SIZE = 16;
19
+ const checkboxProps = summary?.checkbox;
20
+
21
+ const themedStyles = _.merge({}, ownStyles, theme?.UTWorkflowContainer);
22
+ const nextButtonEnabled = nextButton && !nextButton.hidden;
23
+ const returnButtonEnabled = returnButton && !returnButton.hidden;
24
+
25
+ return (
26
+ <View style={ownStyles.bottomNav}>
27
+ {summary && (
28
+ <View style={[ownStyles.summary, checkboxProps && ownStyles.summaryCheckbox]}>
29
+ {checkboxProps ? (
30
+ <Checkbox {...checkboxProps} />
31
+ ) : (
32
+ <View style={ownStyles.summaryTitles}>
33
+ <Label disabled medium style={ownStyles.summaryTitlesChild}>
34
+ {summary.title}
35
+ </Label>
36
+ <Label>{summary.mainInfo}</Label>
37
+ </View>
38
+ )}
39
+ {summary.actions && !checkboxProps && (
40
+ <View style={ownStyles.summaryActions}>
41
+ {summary.actions.map((action, index) => (
42
+ <Button
43
+ key={action.name}
44
+ secondary
45
+ icon={
46
+ action.icon && {
47
+ height: action.icon.height || ICON_SIZE,
48
+ name: action.icon.name,
49
+ size: action.icon.size || ICON_SIZE,
50
+ type: action.icon.type,
51
+ width: action.icon.width || ICON_SIZE
52
+ }
53
+ }
54
+ title={action.title}
55
+ labelColor={themedStyles.summaryActions?.labelColor || 'blue'}
56
+ containerStyle={ownStyles.summaryActionContainer}
57
+ contentStyle={!action.title && ownStyles.summaryActionButton}
58
+ onPress={action.onPress}
59
+ outerContainerStyles={index !== summary.actions.length - 1 && ownStyles.summaryActionsChild}
60
+ />
61
+ ))}
62
+ </View>
63
+ )}
64
+ </View>
65
+ )}
66
+ {message && (
67
+ <View
68
+ style={[
69
+ themedStyles.message,
70
+ themedStyles[`message${message.variant?.charAt(0).toUpperCase()}${message.variant?.slice(1)}`]
71
+ ]}
72
+ >
73
+ <Label white style={ownStyles.messageChild}>
74
+ {message.title}
75
+ </Label>
76
+ {messageIcon && (
77
+ <Icon
78
+ name={messageIcon.name}
79
+ type={messageIcon.type}
80
+ size={MESSAGE_ICON_SIZE}
81
+ width={MESSAGE_ICON_SIZE}
82
+ height={MESSAGE_ICON_SIZE}
83
+ color="white"
84
+ />
85
+ )}
86
+ </View>
87
+ )}
88
+ <View style={ownStyles.actionsContainer}>
89
+ {returnButtonEnabled && (
90
+ <ActionButton
91
+ mode="text"
92
+ label={returnButton.label || RETURN}
93
+ style={nextButtonEnabled && { actionButton: ownStyles.actionsChild }}
94
+ {...returnButton}
95
+ />
96
+ )}
97
+ {nextButtonEnabled && <ActionButton label={nextButton.label || NEXT} {...nextButton} />}
98
+ </View>
99
+ </View>
100
+ );
101
+ };
102
+
103
+ BottomActions.propTypes = {
104
+ message: MessagePropTypes,
105
+ nextButton: ActionButtonPropTypes,
106
+ returnButton: ActionButtonPropTypes,
107
+ summary: SummaryPropTypes
108
+ };
109
+
110
+ export default BottomActions;
@@ -0,0 +1,75 @@
1
+ import { StyleSheet } from 'react-native';
2
+
3
+ export const ICON_SIZE = 24;
4
+
5
+ export default StyleSheet.create({
6
+ actionsChild: {
7
+ marginRight: 16
8
+ },
9
+ actionsContainer: {
10
+ alignItems: 'center',
11
+ flexDirection: 'row',
12
+ flexWrap: 'nowrap',
13
+ justifyContent: 'space-between',
14
+ padding: 16,
15
+ width: '100%'
16
+ },
17
+ bottomNav: {
18
+ backgroundColor: 'white',
19
+ elevation: 10
20
+ },
21
+ message: {
22
+ alignItems: 'center',
23
+ backgroundColor: 'blue',
24
+ display: 'flex',
25
+ flexDirection: 'row',
26
+ justifyContent: 'center',
27
+ paddingHorizontal: 16,
28
+ paddingVertical: 4
29
+ },
30
+ messageChild: {
31
+ marginRight: 8
32
+ },
33
+ messageError: {
34
+ backgroundColor: 'red'
35
+ },
36
+ messageSuccess: {
37
+ backgroundColor: 'green'
38
+ },
39
+ messageWarning: {
40
+ backgroundColor: 'darkorange'
41
+ },
42
+ summary: {
43
+ alignItems: 'center',
44
+ borderTopLeftRadius: 20,
45
+ borderTopRightRadius: 20,
46
+ display: 'flex',
47
+ elevation: 1,
48
+ flexDirection: 'row',
49
+ justifyContent: 'space-between',
50
+ padding: 16
51
+ },
52
+ summaryActionButton: {
53
+ marginHorizontal: 8
54
+ },
55
+ summaryActionContainer: {
56
+ minWidth: 0
57
+ },
58
+ summaryActions: {
59
+ alignItems: 'center',
60
+ display: 'flex',
61
+ flexDirection: 'row'
62
+ },
63
+ summaryActionsChild: {
64
+ marginRight: 16
65
+ },
66
+ summaryCheckbox: {
67
+ flexDirection: 'column'
68
+ },
69
+ summaryTitles: {
70
+ display: 'flex'
71
+ },
72
+ summaryTitlesChild: {
73
+ marginBottom: 8
74
+ }
75
+ });
@@ -0,0 +1,94 @@
1
+ import React, { useEffect } from 'react';
2
+ import { View, ScrollView } from 'react-native';
3
+ import { number, func, shape, bool, string, element } from 'prop-types';
4
+
5
+ import { useTheme } from '../../../../theming';
6
+ import UTHeader from '../../../UTHeader';
7
+ import UTTopbar from '../../../UTTopbar';
8
+ import { StagesPropTypes } from '../../../UTStepper/types';
9
+ import { TopbarPropTypes } from '../../../UTTopbar/types';
10
+
11
+ import ownStyles from './styles';
12
+ import BottomActions from './components/BottomActions';
13
+ import ActionButtonPropTypes from './components/BottomActions/components/ActionButton/types';
14
+ import { MessagePropTypes, SummaryPropTypes } from './types';
15
+
16
+ const UTWorkflowContainer = ({
17
+ banner,
18
+ children,
19
+ currentStage,
20
+ currentStep,
21
+ helpText,
22
+ message,
23
+ nextButton,
24
+ onExit,
25
+ requiredFieldInfo,
26
+ returnButton,
27
+ stages,
28
+ stepsCount,
29
+ subtitle,
30
+ summary,
31
+ tagline,
32
+ title,
33
+ topbar,
34
+ useMarkdown
35
+ }) => {
36
+ useEffect(() => () => onExit?.(), []);
37
+ const theme = useTheme();
38
+
39
+ return (
40
+ <View style={ownStyles.container}>
41
+ {topbar && <UTTopbar {...{ currentStage, currentStep, stages, stepsCount, theme, topbar }} />}
42
+ <ScrollView contentContainerStyle={ownStyles.content}>
43
+ {title && (
44
+ <UTHeader
45
+ {...{
46
+ banner,
47
+ helpText,
48
+ requiredFieldInfo,
49
+ subtitle,
50
+ tagline,
51
+ title,
52
+ useMarkdown
53
+ }}
54
+ />
55
+ )}
56
+ {children}
57
+ </ScrollView>
58
+ {((nextButton && !nextButton?.hidden) || (returnButton && !returnButton?.hidden)) && (
59
+ <BottomActions
60
+ {...{
61
+ message,
62
+ nextButton,
63
+ returnButton,
64
+ summary,
65
+ theme
66
+ }}
67
+ />
68
+ )}
69
+ </View>
70
+ );
71
+ };
72
+ UTWorkflowContainer.propTypes = {
73
+ banner: shape({
74
+ Icon: element,
75
+ text: string
76
+ }),
77
+ currentStage: number,
78
+ currentStep: number.isRequired,
79
+ helpText: string,
80
+ message: MessagePropTypes,
81
+ nextButton: ActionButtonPropTypes,
82
+ onExit: func,
83
+ requiredFieldInfo: string,
84
+ returnButton: ActionButtonPropTypes,
85
+ stages: StagesPropTypes,
86
+ stepsCount: number.isRequired,
87
+ subtitle: string,
88
+ summary: SummaryPropTypes,
89
+ tagline: string,
90
+ title: string,
91
+ topbar: TopbarPropTypes,
92
+ useMarkdown: bool
93
+ };
94
+ export default UTWorkflowContainer;
@@ -0,0 +1,14 @@
1
+ import { StyleSheet } from 'react-native';
2
+
3
+ export default StyleSheet.create({
4
+ container: {
5
+ backgroundColor: 'white',
6
+ flex: 1,
7
+ flexDirection: 'column',
8
+ width: '100%'
9
+ },
10
+ content: {
11
+ paddingBottom: 16,
12
+ paddingHorizontal: 16
13
+ }
14
+ });
@@ -0,0 +1,24 @@
1
+ import { arrayOf, func, shape, string } from 'prop-types';
2
+
3
+ export const SummaryPropTypes = shape({
4
+ actions: arrayOf(
5
+ shape({
6
+ icon: shape({
7
+ name: string,
8
+ type: string
9
+ }),
10
+ onPress: func,
11
+ title: string
12
+ })
13
+ ),
14
+ mainInfo: string,
15
+ title: string
16
+ });
17
+
18
+ export const MessagePropTypes = shape({
19
+ icon: shape({
20
+ name: string,
21
+ type: string
22
+ }),
23
+ title: string
24
+ });
@@ -151,6 +151,7 @@ export const themeType = shape({
151
151
  xbig: number
152
152
  }),
153
153
  fontColor: string,
154
+ // eslint-disable-next-line react/forbid-prop-types
154
155
  customVariants: object,
155
156
  fontFamily: string
156
157
  }),
@@ -1,5 +1,5 @@
1
1
  // eslint-disable-next-line import/no-unresolved
2
- import ImageResizer from 'react-native-image-resizer';
2
+ import ImageResizer from '@bam.tech/react-native-image-resizer';
3
3
 
4
4
  import { IS_IOS } from '../platformUtils/constants';
5
5
 
@@ -14,6 +14,23 @@ export const isImageByUri = uri => {
14
14
 
15
15
  export const blobToFile = (blob, type) => new File([blob], blob.data.name, { type });
16
16
 
17
+ // We use the XMLHttpRequest API since the fetch API does not behave correctly under new sdks on Android
18
+ export const uriToBlob = uri => {
19
+ return new Promise((resolve, reject) => {
20
+ const xhr = new XMLHttpRequest();
21
+ xhr.onload = () => {
22
+ resolve(xhr.response);
23
+ };
24
+ xhr.onerror = () => {
25
+ reject(new Error('uriToBlob failed'));
26
+ };
27
+ xhr.responseType = 'blob';
28
+ xhr.open('GET', uri, true);
29
+
30
+ xhr.send(null);
31
+ });
32
+ };
33
+
17
34
  export const retrieveFile = async (uri, type) => {
18
35
  const uriToUse = IS_IOS ? uri.replace('file://', '') : uri;
19
36
  let blob;
@@ -26,11 +43,9 @@ export const retrieveFile = async (uri, type) => {
26
43
  'JPEG',
27
44
  IMG_QUALITY
28
45
  );
29
- const imageResponse = await fetch(resizedImage.uri);
30
- blob = await imageResponse.blob();
46
+ blob = await uriToBlob(resizedImage.uri);
31
47
  } else {
32
- const res = await fetch(uriToUse);
33
- blob = await res.blob();
48
+ blob = await uriToBlob(uriToUse);
34
49
  }
35
50
 
36
51
  return blob;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@widergy/mobile-ui",
3
3
  "description": "Widergy Mobile Components",
4
4
  "author": "widergy",
5
- "version": "0.40.1",
5
+ "version": "1.1.0",
6
6
  "repository": "https://github.com/widergy/mobile-ui.git",
7
7
  "main": "lib/index.js",
8
8
  "files": [
@@ -18,90 +18,66 @@
18
18
  "prepublish": "npm run build",
19
19
  "android": "cd example && yarn android",
20
20
  "ios": "cd example && yarn ios",
21
- "start": "cd example && yarn start"
21
+ "start": "cd example && yarn start",
22
+ "prepare": "husky install"
22
23
  },
23
24
  "peerDependencies": {
24
- "@react-native-community/viewpager": "^4.1.6",
25
25
  "prop-types": "*",
26
26
  "react": "*",
27
27
  "react-native": "*",
28
- "react-native-document-picker": "^3.4.0",
29
- "react-native-image-picker": "4.x.x",
30
- "react-native-image-resizer": "^1.2.2",
31
- "react-native-svg": "*",
32
- "react-native-vector-icons": "*"
28
+ "react-native-document-picker": "^9.0.1",
29
+ "react-native-image-picker": "^5.0.0",
30
+ "react-native-pager-view": "^6.2.0",
31
+ "@bam.tech/react-native-image-resizer": "^3.0.7",
32
+ "react-native-svg": "^13.0.0",
33
+ "react-native-vector-icons": "^10.0.0"
33
34
  },
34
35
  "dependencies": {
35
- "@widergy/web-utils": "^1.22.0",
36
- "deprecated-react-native-prop-types": "^2.3.0",
37
- "lodash": "^4.17.15",
36
+ "@widergy/web-utils": "^2.0.0",
37
+ "core-js": "3",
38
+ "deprecated-react-native-prop-types": "^4.2.1",
39
+ "lodash": "^4.17.21",
38
40
  "numeral": "^2.0.6",
39
- "pdf-lib": "^1.14.1",
40
- "react-native-markdown-display": ">=6.1.6",
41
- "react-native-modal": "^11.5.6"
41
+ "pdf-lib": "^1.17.1",
42
+ "react-native-markdown-display": "^7.0.0-alpha.2",
43
+ "react-native-modal": "^13.0.1",
44
+ "react-native-pager-view": "^6.2.1"
42
45
  },
43
46
  "devDependencies": {
44
- "@babel/cli": "^7.4.4",
45
- "@babel/core": "^7.6.2",
46
- "@babel/plugin-proposal-class-properties": "^7.4.0",
47
- "@babel/preset-env": "^7.4.5",
48
- "@babel/preset-react": "^7.0.0",
49
- "@babel/runtime": "^7.6.2",
50
- "@commitlint/cli": "^8.2.0",
51
- "@commitlint/config-conventional": "^8.2.0",
47
+ "@babel/cli": "^7.22.10",
48
+ "@babel/core": "^7.22.10",
49
+ "@babel/eslint-parser": "^7.22.10",
50
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
51
+ "@babel/preset-env": "^7.22.10",
52
+ "@babel/preset-react": "^7.22.5",
53
+ "@babel/runtime": "^7.22.10",
54
+ "@commitlint/cli": "^17.7.1",
55
+ "@commitlint/config-conventional": "^17.7.0",
52
56
  "@widergy/semantic-release-package-config": "^1.0.0",
53
- "babel-eslint": "^10.0.2",
54
- "babel-jest": "^24.9.0",
55
- "babel-preset-minify": "^0.5.0",
56
- "eslint": "^6.5.1",
57
- "eslint-config-airbnb": "^17.1.0",
58
- "eslint-config-prettier": "^3.3.0",
59
- "eslint-plugin-flowtype": "^3.2.0",
60
- "eslint-plugin-import": "^2.14.0",
61
- "eslint-plugin-jsx-a11y": "^6.1.2",
62
- "eslint-plugin-prettier": "^3.0.0",
63
- "eslint-plugin-react": "^7.11.1",
64
- "eslint-plugin-react-hooks": "^4.2.0",
65
- "eslint-plugin-react-native": "^3.7.0",
66
- "husky": "4.0.0-beta.5",
67
- "jest": "^24.8.0",
68
- "prettier": "^1.15.2",
69
- "prettier-eslint": "^8.8.2",
70
- "prop-types": "^15.7.2",
71
- "react": "16.11.0",
72
- "react-native": "0.62.2",
73
- "react-native-vector-icons": "^6.4.2",
74
- "react-native-version": "^3.1.0",
57
+ "babel-jest": "^29.6.2",
58
+ "babel-preset-minify": "^0.5.2",
59
+ "eslint": "^8.47.0",
60
+ "eslint-config-airbnb": "^19.0.4",
61
+ "eslint-config-prettier": "^9.0.0",
62
+ "eslint-plugin-flowtype": "^8.0.3",
63
+ "eslint-plugin-import": "^2.28.0",
64
+ "eslint-plugin-jsx-a11y": "^6.7.1",
65
+ "eslint-plugin-prettier": "^5.0.0",
66
+ "eslint-plugin-react": "^7.33.1",
67
+ "eslint-plugin-react-hooks": "^4.6.0",
68
+ "eslint-plugin-react-native": "^4.0.0",
69
+ "husky": "^8.0.0",
70
+ "jest": "^29.6.2",
71
+ "prettier": "^3.0.1",
72
+ "prettier-eslint": "^15.0.1",
73
+ "prop-types": "^15.8.1",
74
+ "react": "18.2.0",
75
+ "react-native": "0.72.6",
76
+ "react-native-vector-icons": "^10.0.0",
77
+ "react-native-version": "^4.0.0",
75
78
  "semantic-release": "^15.13.31"
76
79
  },
77
- "jest": {
78
- "preset": "react-native",
79
- "transform": {
80
- "^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
81
- }
82
- },
83
- "husky": {
84
- "hooks": {
85
- "pre-commit": "yarn lint-diff && node branch-name-hook",
86
- "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
87
- }
88
- },
89
80
  "release": {
90
81
  "extends": "@widergy/semantic-release-package-config"
91
- },
92
- "commitlint": {
93
- "extends": [
94
- "@commitlint/config-conventional"
95
- ],
96
- "rules": {
97
- "subject-case": [
98
- 2,
99
- "never",
100
- [
101
- "start-case",
102
- "pascal-case"
103
- ]
104
- ]
105
- }
106
82
  }
107
83
  }