uilib-native 3.0.3 → 3.0.6

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 (137) hide show
  1. package/android/build/.transforms/{6a4a003a5436f1cfa6c642f89a88b8f1.bin → 7b85a4cb719e06b1cadba5128a161508/results.bin} +0 -0
  2. package/android/build/.transforms/7b85a4cb719e06b1cadba5128a161508/transformed/classes/classes.dex +0 -0
  3. package/android/build/.transforms/faa2afe0bc7898c632042480c288ecc2/results.bin +1 -0
  4. package/android/build/.transforms/faa2afe0bc7898c632042480c288ecc2/transformed/classes/classes.dex +0 -0
  5. package/android/build/generated/source/buildConfig/debug/com/wix/reactnativeuilib/BuildConfig.java +0 -8
  6. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +3 -5
  7. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +16 -0
  8. package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +2 -0
  9. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  10. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  11. package/android/build/intermediates/compile_symbol_list/debug/R.txt +1865 -0
  12. package/android/build/intermediates/compiled_local_resources/debug/out/layout_wheel_picker.xml.flat +0 -0
  13. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +1 -1
  14. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +1 -1
  15. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +1 -1
  16. package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +2 -2
  17. package/android/build/intermediates/incremental/packageDebugResources/merger.xml +2 -2
  18. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/BuildConfig.class +0 -0
  19. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/UiLibPackageList.class +0 -0
  20. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/highlighterview/HighlightFrame.class +0 -0
  21. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/highlighterview/HighlightViewTagParams.class +0 -0
  22. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/highlighterview/HighlighterView.class +0 -0
  23. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager$1.class +0 -0
  24. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.class +0 -0
  25. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/highlighterview/HighlighterViewPackage.class +0 -0
  26. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/highlighterview/ReactHacks.class +0 -0
  27. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/highlighterview/ReflectionUtils.class +0 -0
  28. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/highlighterview/UiUtils.class +0 -0
  29. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/AppContextHolder$1.class +0 -0
  30. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/AppContextHolder.class +0 -0
  31. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout$1.class +0 -0
  32. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout$2.class +0 -0
  33. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout$3.class +0 -0
  34. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout$4.class +0 -0
  35. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout$5.class +0 -0
  36. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout.class +0 -0
  37. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootView.class +0 -0
  38. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewManager.class +0 -0
  39. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewShadow.class +0 -0
  40. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/KeyboardInputModule.class +0 -0
  41. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/KeyboardInputPackage.class +0 -0
  42. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/ReactContextHolder.class +0 -0
  43. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/ReactScreenMonitor$1.class +0 -0
  44. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/ReactScreenMonitor$Listener.class +0 -0
  45. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/ReactScreenMonitor.class +0 -0
  46. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor$1.class +0 -0
  47. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor$2.class +0 -0
  48. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor$Listener.class +0 -0
  49. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor.class +0 -0
  50. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/utils/PredicateFunc.class +0 -0
  51. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils$1.class +0 -0
  52. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils$2.class +0 -0
  53. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.class +0 -0
  54. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/utils/ViewUtils$1.class +0 -0
  55. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/utils/ViewUtils$VisibleViewClassMatchPredicate.class +0 -0
  56. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/keyboardinput/utils/ViewUtils.class +0 -0
  57. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/textinput/DefaultKeyListener.class +0 -0
  58. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/textinput/KeyListenerProxy.class +0 -0
  59. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerModule$1.class +0 -0
  60. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerModule.class +0 -0
  61. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerPackage.class +0 -0
  62. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/textinput/ViewUtils.class +0 -0
  63. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/utils/LogForwarder$LogType.class +0 -0
  64. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/utils/LogForwarder.class +0 -0
  65. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/wheelpicker/WheelPicker$1.class +0 -0
  66. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/wheelpicker/WheelPicker.class +0 -0
  67. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/wheelpicker/WheelPickerManager.class +0 -0
  68. package/android/build/intermediates/javac/debug/classes/com/wix/reactnativeuilib/wheelpicker/WheelPickerPackage.class +0 -0
  69. package/android/build/intermediates/local_only_symbol_list/debug/{parseDebugLibraryResources/R-def.txt → R-def.txt} +0 -0
  70. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +9 -11
  71. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +9 -0
  72. package/android/build/intermediates/navigation_json/debug/navigation.json +1 -0
  73. package/android/build/intermediates/packaged_manifests/debug/output-metadata.json +16 -0
  74. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  75. package/android/build/intermediates/{res/symbol-table-with-package → symbol_list_with_package_name}/debug/package-aware-r.txt +66 -8
  76. package/android/build/outputs/logs/manifest-merger-debug-report.txt +18 -30
  77. package/android/build/tmp/compileDebugJavaWithJavac/source-classes-mapping.txt +83 -0
  78. package/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout.java +41 -17
  79. package/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootView.java +12 -0
  80. package/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputModule.java +1 -1
  81. package/components/{HighlighterOverlayView.js → HighlighterOverlayView.tsx} +40 -46
  82. package/components/Keyboard/KeyboardInput/{CustomKeyboardView.android.js → CustomKeyboardView/CustomKeyboardView.android.tsx} +9 -14
  83. package/components/Keyboard/KeyboardInput/{CustomKeyboardView.ios.js → CustomKeyboardView/CustomKeyboardView.ios.tsx} +20 -21
  84. package/components/Keyboard/KeyboardInput/CustomKeyboardView/index.tsx +16 -0
  85. package/components/Keyboard/KeyboardInput/{CustomKeyboardViewBase.js → CustomKeyboardViewBase.tsx} +26 -20
  86. package/components/Keyboard/KeyboardInput/{KeyboardAccessoryView.js → KeyboardAccessoryView.tsx} +119 -100
  87. package/components/Keyboard/KeyboardInput/{KeyboardRegistry.js → KeyboardRegistry.ts} +10 -10
  88. package/components/Keyboard/KeyboardInput/{TextInputKeyboardManager.android.js → TextInputKeyboardManager/TextInputKeyboardManager.android.ts} +1 -1
  89. package/components/Keyboard/KeyboardInput/{TextInputKeyboardManager.ios.js → TextInputKeyboardManager/TextInputKeyboardManager.ios.ts} +5 -4
  90. package/components/Keyboard/KeyboardInput/TextInputKeyboardManager/index.ts +9 -0
  91. package/components/Keyboard/KeyboardInput/utils/{EventEmitterManager.js → EventEmitterManager.ts} +5 -4
  92. package/components/Keyboard/KeyboardInput/utils/{KeyboardUtils.js → KeyboardUtils.ts} +0 -0
  93. package/components/Keyboard/KeyboardTracking/{KeyboardAwareInsetsView.js → KeyboardAwareInsetsView.tsx} +3 -4
  94. package/components/Keyboard/KeyboardTracking/{KeyboardTrackingView.android.js → KeyboardTrackingView/KeyboardTrackingView.android.tsx} +1 -0
  95. package/components/Keyboard/KeyboardTracking/{KeyboardTrackingView.ios.js → KeyboardTrackingView/KeyboardTrackingView.ios.tsx} +8 -14
  96. package/components/Keyboard/KeyboardTracking/KeyboardTrackingView/index.tsx +54 -0
  97. package/components/Keyboard/index.ts +15 -0
  98. package/components/SafeArea/{SafeAreaInsetsManager.js → SafeAreaInsetsManager.ts} +10 -7
  99. package/components/SafeArea/SafeAreaSpacerView.tsx +19 -0
  100. package/components/WheelPicker/WheelPickerItem.tsx +21 -0
  101. package/components/WheelPicker/{index.js → index.tsx} +58 -38
  102. package/components/index.ts +14 -0
  103. package/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.m +44 -2
  104. package/package.json +1 -1
  105. package/android/.gradle/5.6.1/fileChanges/last-build.bin +0 -0
  106. package/android/.gradle/5.6.1/fileHashes/fileHashes.lock +0 -0
  107. package/android/.gradle/5.6.1/gc.properties +0 -0
  108. package/android/.gradle/vcs-1/gc.properties +0 -0
  109. package/android/.idea/codeStyles/Project.xml +0 -116
  110. package/android/.idea/encodings.xml +0 -4
  111. package/android/.idea/gradle.xml +0 -12
  112. package/android/.idea/misc.xml +0 -9
  113. package/android/.idea/modules.xml +0 -8
  114. package/android/.idea/runConfigurations.xml +0 -12
  115. package/android/.idea/vcs.xml +0 -6
  116. package/android/.idea/workspace.xml +0 -547
  117. package/android/android.iml +0 -18
  118. package/android/build/.transforms/6a4a003a5436f1cfa6c642f89a88b8f1/classes/classes.dex +0 -0
  119. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output.json +0 -1
  120. package/android/build/intermediates/compile_library_classes/debug/classes.jar +0 -0
  121. package/android/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/R.jar +0 -0
  122. package/android/build/intermediates/incremental/debug-mergeNativeLibs/merge-state +0 -0
  123. package/android/build/intermediates/library_java_res/debug/res.jar +0 -0
  124. package/android/build/intermediates/library_manifest/debug/AndroidManifest.xml +0 -11
  125. package/android/build/intermediates/merged_manifests/debug/output.json +0 -1
  126. package/android/build/intermediates/runtime_library_classes/debug/classes.jar +0 -0
  127. package/android/build/intermediates/symbols/debug/R.txt +0 -1801
  128. package/android/local.properties +0 -8
  129. package/android/react-native-ui-lib.iml +0 -144
  130. package/components/Keyboard/index.js +0 -7
  131. package/components/SafeArea/SafeAreaSpacerView.js +0 -16
  132. package/components/WheelPicker/WheelPickerItem.js +0 -21
  133. package/components/index.js +0 -17
  134. package/ios/reactnativeuilib.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  135. package/ios/reactnativeuilib.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  136. package/ios/reactnativeuilib.xcodeproj/project.xcworkspace/xcuserdata/michaelle.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  137. package/ios/reactnativeuilib.xcodeproj/xcuserdata/michaelle.xcuserdatad/xcschemes/xcschememanagement.plist +0 -19
@@ -0,0 +1,21 @@
1
+ import {Component} from 'react';
2
+
3
+ type WheelPickerItemProps = {
4
+ /**
5
+ * the picker item value
6
+ */
7
+ value: string | number;
8
+ /**
9
+ * the picker item display label
10
+ */
11
+ label: string;
12
+ };
13
+
14
+ export default class WheelPickerItem extends Component<WheelPickerItemProps> {
15
+ static displayName = 'WheelPicker.Item';
16
+
17
+ render() {
18
+ // These items don't get rendered directly.
19
+ return null;
20
+ }
21
+ }
@@ -1,70 +1,87 @@
1
1
  import _ from 'lodash';
2
- import PropTypes from 'prop-types';
3
2
  import React, {Component} from 'react';
4
- import {DeviceEventEmitter, requireNativeComponent, StyleSheet, View} from 'react-native';
5
- import {Picker} from '@react-native-community/picker';
3
+ import {DeviceEventEmitter, requireNativeComponent, StyleSheet, View, ViewStyle, TextStyle} from 'react-native';
4
+
6
5
  import WheelPickerItem from './WheelPickerItem';
7
- import {Constants} from '../../../src/helpers';
6
+ import {Constants} from '../../../src/commons/new';
7
+ import {LogService} from '../../../src/services';
8
8
  import {Typography, Colors} from '../../../src/style';
9
9
 
10
- const WheelPickerNative = requireNativeComponent('WheelPicker', null);
10
+ import {PickerPackage, CommunityPickerPackage} from '../../../src/optionalDependencies';
11
+ const Picker = PickerPackage?.Picker || CommunityPickerPackage?.Picker || (() => null);
11
12
 
12
- class WheelPicker extends Component {
13
- static displayName = 'WheelPicker';
13
+ if (!PickerPackage) {
14
+ if (CommunityPickerPackage) {
15
+ console.warn(`RNUILib Picker will soon migrate to use "@react-native-picker/picker" package instead of '@react-native-community/picker'`);
16
+ } else {
17
+ console.error(`RNUILib Picker requires installing "@react-native-picker/picker" dependency`);
18
+ }
19
+ }
14
20
 
15
- static propTypes = {
16
- /**
21
+ const WheelPickerNative = requireNativeComponent('WheelPicker');
22
+
23
+ export type WheelPickerProps = {
24
+ /**
17
25
  * the current selected value of the picker
18
26
  */
19
- selectedValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), //eslint-disable-line
27
+ selectedValue?: string | number;
20
28
  /**
21
29
  * callback for when a value change
22
30
  */
23
- onValueChange: PropTypes.func,
31
+ onValueChange?: (value: string | number, index: number) => void;
24
32
  /**
25
33
  * pass custom style
26
34
  */
27
- style: PropTypes.oneOfType([PropTypes.object, PropTypes.number]),
35
+ style?: ViewStyle;
28
36
  /**
29
37
  * pass custom label style: fontSize, fontFamily, color<br>
30
38
  * Note: label's color will override the text color (hex only)
31
39
  */
32
- labelStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.number]),
40
+ labelStyle?: TextStyle;
33
41
  /**
34
42
  * The height of the selected item
35
43
  */
36
- itemHeight: PropTypes.number,
44
+ itemHeight?: number;
37
45
  /**
38
46
  * The color of the wheel picker (hex only)
39
47
  */
40
- color: PropTypes.string,
48
+ color?: string;
41
49
  /**
42
50
  * pass custom style for the picker item
43
51
  */
44
- itemStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.number]), //eslint-disable-line
45
- };
52
+ itemStyle?: ViewStyle;
53
+ children?: JSX.Element | JSX.Element[];
54
+ }
55
+
56
+ class WheelPicker extends Component<WheelPickerProps> {
57
+ static displayName = 'WheelPicker';
46
58
 
47
59
  static defaultProps = {
48
- labelStyle: {fontSize: Typography.text70.fontSize, fontFamily: Typography.text70.fontFamily},
49
- color: Colors.blue30
60
+ labelStyle: {fontSize: Typography.text70?.fontSize, fontFamily: Typography.text70?.fontFamily},
61
+ color: Colors.primary
50
62
  };
51
63
 
52
- constructor(props) {
64
+ static Item: typeof WheelPickerItem;
65
+
66
+ constructor(props: WheelPickerProps) {
53
67
  super(props);
54
68
  this.onValueChange = this.onValueChange.bind(this); //eslint-disable-line
55
69
  this.getItems();
56
70
  DeviceEventEmitter.addListener('log', this.onLogReceived); // TODO: consider moving to a more generic place (base class?)
71
+
72
+ LogService.componentDeprecationWarn({oldComponent: 'WheelPicker', newComponent: 'Incubator.WheelPicker'});
57
73
  }
58
74
 
59
75
  state = {
60
- items: this.getItems(),
76
+ items: this.getItems()
61
77
  };
62
78
 
63
- onLogReceived = (event) => {
79
+ onLogReceived = (event: any) => {
80
+ // @ts-expect-error
64
81
  console[event.LogType](event.TAG, event.text);
65
- }
82
+ };
66
83
 
67
- onValueChange(event) {
84
+ onValueChange(event: any) {
68
85
  const index = event.nativeEvent.itemIndex;
69
86
  const {onValueChange} = this.props;
70
87
  if (onValueChange) {
@@ -74,9 +91,13 @@ class WheelPicker extends Component {
74
91
  }
75
92
 
76
93
  getItems() {
77
- const items = _.map(React.Children.toArray(this.props.children), child => ({
94
+ const {children} = this.props;
95
+
96
+ const items = _.map(React.Children.toArray(children), child => ({
97
+ //@ts-expect-error
78
98
  value: child.props.value,
79
- label: child.props.label,
99
+ //@ts-expect-error
100
+ label: child.props.label
80
101
  }));
81
102
  return items;
82
103
  }
@@ -93,37 +114,36 @@ class WheelPicker extends Component {
93
114
 
94
115
  render() {
95
116
  const {style, color, labelStyle, itemHeight} = this.props;
96
- const {fontSize, fontFamily} = labelStyle;
97
- let {color: labelColor} = labelStyle;
98
117
 
99
118
  return (
100
- <View collapsable={false} style={styles.container} >
119
+ <View collapsable={false} style={styles.container}>
101
120
  <WheelPickerNative
121
+ // @ts-expect-error
102
122
  data={this.extractLabelsFromItems()}
103
123
  initialIndex={this.getInitialIndex()}
104
124
  onChange={this.onValueChange}
105
125
  style={[styles.wheelPicker, style]}
106
126
  color={color}
107
- labelColor={labelColor || color}
108
- fontSize={fontSize}
127
+ labelColor={labelStyle?.color || color}
128
+ fontSize={labelStyle?.fontSize}
109
129
  itemHeight={itemHeight}
110
- fontFamily={fontFamily}
130
+ fontFamily={labelStyle?.fontFamily}
111
131
  />
112
132
  </View>
113
133
  );
114
134
  }
115
135
  }
116
136
 
137
+ WheelPicker.Item = WheelPickerItem;
138
+
117
139
  const styles = StyleSheet.create({
118
140
  container: {
119
- overflow: 'hidden',
141
+ overflow: 'hidden'
120
142
  },
121
143
  wheelPicker: {
122
144
  width: 200,
123
- height: 200,
124
- },
145
+ height: 200
146
+ }
125
147
  });
126
148
 
127
- WheelPicker.Item = WheelPickerItem;
128
-
129
- export default (Constants.isAndroid ? WheelPicker : Picker);
149
+ export default Constants.isAndroid ? WheelPicker : Picker;
@@ -0,0 +1,14 @@
1
+ import HighlighterOverlayView from './HighlighterOverlayView';
2
+ import SafeAreaSpacerView from './SafeArea/SafeAreaSpacerView';
3
+ import WheelPicker, {WheelPickerProps} from './WheelPicker';
4
+ import SafeAreaInsetsManager from './SafeArea/SafeAreaInsetsManager';
5
+ import Keyboard from './Keyboard';
6
+
7
+ export {
8
+ HighlighterOverlayView,
9
+ SafeAreaSpacerView,
10
+ WheelPicker,
11
+ WheelPickerProps,
12
+ SafeAreaInsetsManager,
13
+ Keyboard
14
+ };
@@ -50,6 +50,8 @@ typedef NS_ENUM(NSUInteger, KeyboardTrackingScrollBehavior) {
50
50
  @property (nonatomic) CGFloat originalHeight;
51
51
  @property (nonatomic) KeyboardTrackingScrollBehavior scrollBehavior;
52
52
  @property (nonatomic) BOOL addBottomView;
53
+ @property (nonatomic) BOOL useSafeArea;
54
+ @property (nonatomic) BOOL usesBottomTabs;
53
55
  @property (nonatomic) BOOL scrollToFocusedInput;
54
56
  @property (nonatomic) BOOL allowHitsOutsideBounds;
55
57
 
@@ -81,6 +83,7 @@ typedef NS_ENUM(NSUInteger, KeyboardTrackingScrollBehavior) {
81
83
 
82
84
  self.addBottomView = NO;
83
85
  self.scrollToFocusedInput = NO;
86
+ self.usesBottomTabs = NO;
84
87
 
85
88
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(rctContentDidAppearNotification:) name:RCTContentDidAppearNotification object:nil];
86
89
  }
@@ -483,7 +486,7 @@ typedef NS_ENUM(NSUInteger, KeyboardTrackingScrollBehavior) {
483
486
  {
484
487
  CGFloat bottomSafeArea = 0;
485
488
  #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_10_3
486
- if (@available(iOS 11.0, *)) {
489
+ if (@available(iOS 11.0, *) && self.useSafeArea) {
487
490
  bottomSafeArea = self.superview ? self.superview.safeAreaInsets.bottom : self.safeAreaInsets.bottom;
488
491
  }
489
492
  #endif
@@ -502,12 +505,49 @@ typedef NS_ENUM(NSUInteger, KeyboardTrackingScrollBehavior) {
502
505
  });
503
506
  }
504
507
 
508
+ #pragma mark - root view controller and presenting style
509
+
510
+
511
+ - (BOOL)isModal {
512
+ UIWindow *window = UIApplication.sharedApplication.windows.firstObject;
513
+ UIViewController *presentedViewController = window.rootViewController.presentedViewController;
514
+
515
+ if (presentedViewController != nil) {
516
+ if ([presentedViewController isKindOfClass:[UINavigationController class]]) {
517
+ UINavigationController *presented = (UINavigationController*)presentedViewController;
518
+ if (presented.visibleViewController) {
519
+ return YES;
520
+ }
521
+ }
522
+ }
523
+ return NO;
524
+ }
525
+
526
+ #pragma mark - TabBarController
527
+
528
+ -(CGFloat)getTabBarHeight
529
+ {
530
+ if (@available(iOS 11.0, *)) {
531
+ NSLog(@"INBAL usesBottomTabs: %d", self.usesBottomTabs);
532
+ if (self.usesBottomTabs == YES)
533
+ {
534
+ UITabBarController *tabBarController = [UITabBarController new];
535
+ CGFloat tabBarHeight = tabBarController.tabBar.frame.size.height;
536
+ UIWindow *window = UIApplication.sharedApplication.windows.firstObject;
537
+ CGFloat bottomPadding = window.safeAreaInsets.bottom;
538
+ return tabBarHeight + bottomPadding;
539
+ }
540
+ }
541
+ return 0;
542
+ }
543
+
505
544
  #pragma mark - ObservingInputAccessoryViewTempDelegate methods
506
545
 
507
546
  -(void)updateTransformAndInsets
508
547
  {
509
548
  CGFloat bottomSafeArea = [self getBottomSafeArea];
510
- CGFloat accessoryTranslation = MIN(-bottomSafeArea, -_ObservingInputAccessoryViewTemp.keyboardHeight);
549
+ CGFloat tabBarHeight = [self getTabBarHeight];
550
+ CGFloat accessoryTranslation = MIN(-bottomSafeArea, -_ObservingInputAccessoryViewTemp.keyboardHeight + tabBarHeight);
511
551
 
512
552
  if (_ObservingInputAccessoryViewTemp.keyboardHeight <= bottomSafeArea) {
513
553
  _bottomViewHeight = kBottomViewHeightTemp;
@@ -632,6 +672,8 @@ RCT_REMAP_VIEW_PROPERTY(revealKeyboardInteractive, revealKeyboardInteractive, BO
632
672
  RCT_REMAP_VIEW_PROPERTY(manageScrollView, manageScrollView, BOOL)
633
673
  RCT_REMAP_VIEW_PROPERTY(requiresSameParentToManageScrollView, requiresSameParentToManageScrollView, BOOL)
634
674
  RCT_REMAP_VIEW_PROPERTY(addBottomView, addBottomView, BOOL)
675
+ RCT_REMAP_VIEW_PROPERTY(useSafeArea, useSafeArea, BOOL)
676
+ RCT_REMAP_VIEW_PROPERTY(usesBottomTabs, usesBottomTabs, BOOL)
635
677
  RCT_REMAP_VIEW_PROPERTY(scrollToFocusedInput, scrollToFocusedInput, BOOL)
636
678
  RCT_REMAP_VIEW_PROPERTY(allowHitsOutsideBounds, allowHitsOutsideBounds, BOOL)
637
679
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uilib-native",
3
- "version": "3.0.3",
3
+ "version": "3.0.6",
4
4
  "homepage": "https://github.com/wix/react-native-ui-lib",
5
5
  "description": "uilib native components (separated from js components)",
6
6
  "main": "components/index.js",
File without changes
File without changes
@@ -1,116 +0,0 @@
1
- <component name="ProjectCodeStyleConfiguration">
2
- <code_scheme name="Project" version="173">
3
- <codeStyleSettings language="XML">
4
- <indentOptions>
5
- <option name="CONTINUATION_INDENT_SIZE" value="4" />
6
- </indentOptions>
7
- <arrangement>
8
- <rules>
9
- <section>
10
- <rule>
11
- <match>
12
- <AND>
13
- <NAME>xmlns:android</NAME>
14
- <XML_ATTRIBUTE />
15
- <XML_NAMESPACE>^$</XML_NAMESPACE>
16
- </AND>
17
- </match>
18
- </rule>
19
- </section>
20
- <section>
21
- <rule>
22
- <match>
23
- <AND>
24
- <NAME>xmlns:.*</NAME>
25
- <XML_ATTRIBUTE />
26
- <XML_NAMESPACE>^$</XML_NAMESPACE>
27
- </AND>
28
- </match>
29
- <order>BY_NAME</order>
30
- </rule>
31
- </section>
32
- <section>
33
- <rule>
34
- <match>
35
- <AND>
36
- <NAME>.*:id</NAME>
37
- <XML_ATTRIBUTE />
38
- <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
39
- </AND>
40
- </match>
41
- </rule>
42
- </section>
43
- <section>
44
- <rule>
45
- <match>
46
- <AND>
47
- <NAME>.*:name</NAME>
48
- <XML_ATTRIBUTE />
49
- <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
50
- </AND>
51
- </match>
52
- </rule>
53
- </section>
54
- <section>
55
- <rule>
56
- <match>
57
- <AND>
58
- <NAME>name</NAME>
59
- <XML_ATTRIBUTE />
60
- <XML_NAMESPACE>^$</XML_NAMESPACE>
61
- </AND>
62
- </match>
63
- </rule>
64
- </section>
65
- <section>
66
- <rule>
67
- <match>
68
- <AND>
69
- <NAME>style</NAME>
70
- <XML_ATTRIBUTE />
71
- <XML_NAMESPACE>^$</XML_NAMESPACE>
72
- </AND>
73
- </match>
74
- </rule>
75
- </section>
76
- <section>
77
- <rule>
78
- <match>
79
- <AND>
80
- <NAME>.*</NAME>
81
- <XML_ATTRIBUTE />
82
- <XML_NAMESPACE>^$</XML_NAMESPACE>
83
- </AND>
84
- </match>
85
- <order>BY_NAME</order>
86
- </rule>
87
- </section>
88
- <section>
89
- <rule>
90
- <match>
91
- <AND>
92
- <NAME>.*</NAME>
93
- <XML_ATTRIBUTE />
94
- <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
95
- </AND>
96
- </match>
97
- <order>ANDROID_ATTRIBUTE_ORDER</order>
98
- </rule>
99
- </section>
100
- <section>
101
- <rule>
102
- <match>
103
- <AND>
104
- <NAME>.*</NAME>
105
- <XML_ATTRIBUTE />
106
- <XML_NAMESPACE>.*</XML_NAMESPACE>
107
- </AND>
108
- </match>
109
- <order>BY_NAME</order>
110
- </rule>
111
- </section>
112
- </rules>
113
- </arrangement>
114
- </codeStyleSettings>
115
- </code_scheme>
116
- </component>
@@ -1,4 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="Encoding" addBOMForNewFiles="with NO BOM" />
4
- </project>
@@ -1,12 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="GradleSettings">
4
- <option name="linkedExternalProjectsSettings">
5
- <GradleProjectSettings>
6
- <option name="distributionType" value="DEFAULT_WRAPPED" />
7
- <option name="externalProjectPath" value="$PROJECT_DIR$" />
8
- <option name="resolveModulePerSourceSet" value="false" />
9
- </GradleProjectSettings>
10
- </option>
11
- </component>
12
- </project>
@@ -1,9 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectRootManager">
4
- <output url="file://$PROJECT_DIR$/build/classes" />
5
- </component>
6
- <component name="ProjectType">
7
- <option name="id" value="Android" />
8
- </component>
9
- </project>
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/android.iml" filepath="$PROJECT_DIR$/android.iml" />
6
- </modules>
7
- </component>
8
- </project>
@@ -1,12 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="RunConfigurationProducerService">
4
- <option name="ignoredProducers">
5
- <set>
6
- <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
7
- <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
8
- <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
9
- </set>
10
- </option>
11
- </component>
12
- </project>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
5
- </component>
6
- </project>