react-native-ui-lib 7.46.3 → 8.0.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 (214) hide show
  1. package/babel.config.js +12 -0
  2. package/incubator.d.ts +2 -2
  3. package/incubator.js +0 -2
  4. package/index.js +1 -0
  5. package/lib/android/build.gradle +5 -5
  6. package/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java +0 -2
  7. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java +31 -23
  8. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +1 -1
  9. package/lib/components/{HighlighterOverlayView.d.ts → HighlighterOverlayView/index.d.ts} +1 -1
  10. package/lib/components/HighlighterOverlayView/index.js +49 -0
  11. package/lib/components/{HighlighterOverlayView.web.d.ts → HighlighterOverlayView/index.web.d.ts} +1 -1
  12. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/CustomKeyboardView.android.d.ts +5 -2
  13. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.android.js +51 -0
  14. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/CustomKeyboardView.ios.d.ts +1 -1
  15. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/CustomKeyboardView.ios.js +3 -3
  16. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/CustomKeyboardView}/CustomKeyboardViewBase.d.ts +3 -0
  17. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/CustomKeyboardView}/CustomKeyboardViewBase.js +1 -1
  18. package/lib/components/Keyboard/{KeyboardInput/utils → KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager}/__tests__/EventEmitterManager.spec.js +1 -1
  19. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/KeyboardRegistry}/__tests__/KeyboardRegistry.spec.js +1 -1
  20. package/lib/components/Keyboard/{KeyboardInput/KeyboardRegistry.d.ts → KeyboardAccessoryView/KeyboardRegistry/index.d.ts} +1 -1
  21. package/lib/components/Keyboard/{KeyboardInput/KeyboardRegistry.js → KeyboardAccessoryView/KeyboardRegistry/index.js} +1 -1
  22. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/KeyboardRegistry}/keyboardRegistry.api.json +9 -9
  23. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.d.ts +26 -0
  24. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.js +91 -0
  25. package/lib/components/Keyboard/{KeyboardInput/KeyboardAccessoryView.d.ts → KeyboardAccessoryView/index.d.ts} +11 -1
  26. package/lib/components/Keyboard/{KeyboardInput/KeyboardAccessoryView.js → KeyboardAccessoryView/index.js} +31 -5
  27. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/keyboardAccessoryView.api.json +5 -5
  28. package/lib/components/Keyboard/{KeyboardTracking/KeyboardAwareInsetsView.d.ts → KeyboardAwareInsetsView/index.d.ts} +1 -1
  29. package/lib/components/Keyboard/{KeyboardTracking/KeyboardAwareInsetsView.js → KeyboardAwareInsetsView/index.js} +1 -1
  30. package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.ios.d.ts +1 -4
  31. package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.ios.js +5 -8
  32. package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.d.ts +2 -2
  33. package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/keyboardTrackingView.api.json +11 -20
  34. package/lib/components/Keyboard/index.d.ts +6 -6
  35. package/lib/components/Keyboard/index.js +6 -6
  36. package/lib/components/SafeArea/SafeAreaInsetsManager.d.ts +21 -7
  37. package/lib/components/SafeArea/SafeAreaInsetsManager.js +95 -31
  38. package/lib/components/SafeArea/SafeAreaSpacerView.d.ts +2 -2
  39. package/lib/components/SafeArea/SafeAreaSpacerView.js +63 -9
  40. package/lib/components/SafeArea/__tests__/SafeAreaInsetsManager.spec.js +274 -0
  41. package/lib/components/SafeArea/index.d.ts +10 -0
  42. package/lib/components/SafeArea/index.js +11 -0
  43. package/lib/components/index.d.ts +1 -1
  44. package/lib/components/index.js +1 -1
  45. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.m +56 -8
  46. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.h +1 -7
  47. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.m +1 -1
  48. package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.m +134 -44
  49. package/lib/package.json +3 -3
  50. package/lib/react-native.config.js +1 -3
  51. package/metro.config.js +2 -2
  52. package/package.json +33 -32
  53. package/panView.d.ts +2 -0
  54. package/panView.js +1 -0
  55. package/scripts/release/prReleaseNotesCommon.js +15 -4
  56. package/src/commons/Constants.js +2 -5
  57. package/src/commons/modifiers.d.ts +1 -0
  58. package/src/commons/modifiers.js +5 -2
  59. package/src/components/KeyboardAwareScrollView/KeyboardAwareBase.js +5 -1
  60. package/src/components/actionSheet/index.d.ts +2 -12
  61. package/src/components/actionSheet/index.js +3 -42
  62. package/src/components/animatedImage/index.js +12 -2
  63. package/src/components/badge/index.d.ts +107 -47
  64. package/src/components/button/button.api.json +1 -1
  65. package/src/components/button/index.d.ts +53 -23
  66. package/src/components/button/types.d.ts +0 -1
  67. package/src/components/colorPicker/ColorPickerDialog.d.ts +1 -1
  68. package/src/components/colorPicker/ColorPickerDialog.js +1 -1
  69. package/src/components/dateTimePicker/index.d.ts +186 -5
  70. package/src/components/dateTimePicker/index.js +3 -4
  71. package/src/components/dialog/dialog.api.json +34 -35
  72. package/src/{incubator → components}/dialog/dialogHeader.api.json +2 -2
  73. package/src/components/dialog/index.d.ts +13 -105
  74. package/src/components/dialog/index.js +205 -212
  75. package/src/{incubator → components}/dialog/types.d.ts +7 -19
  76. package/src/{incubator → components}/dialog/types.js +1 -3
  77. package/src/{incubator → components}/dialog/useDialogContent.d.ts +1 -1
  78. package/src/components/drawer/Swipeable.js +1 -2
  79. package/src/components/drawer/index.js +31 -25
  80. package/src/components/fadedScrollView/index.js +7 -2
  81. package/src/components/featureHighlight/index.d.ts +1 -1
  82. package/src/components/hint/index.d.ts +0 -8
  83. package/src/components/hint/index.js +4 -6
  84. package/src/components/image/index.js +4 -0
  85. package/src/components/index.js +0 -19
  86. package/src/components/marquee/types.js +4 -1
  87. package/src/components/modal/index.d.ts +5 -0
  88. package/src/components/modal/index.js +14 -10
  89. package/src/components/modal/modal.api.json +5 -0
  90. package/src/{incubator → components}/panView/index.d.ts +3 -3
  91. package/src/{incubator → components}/panView/index.js +4 -4
  92. package/src/{incubator → components}/panView/usePanGesture.d.ts +1 -1
  93. package/src/components/picker/Picker.driver.new.d.ts +2 -2
  94. package/src/components/picker/Picker.driver.new.js +3 -3
  95. package/src/components/picker/PickerItem.js +6 -20
  96. package/src/components/picker/PickerPresenter.d.ts +0 -1
  97. package/src/components/picker/PickerPresenter.js +1 -23
  98. package/src/components/picker/api/picker.api.json +0 -1
  99. package/src/components/picker/api/pickerItem.api.json +0 -5
  100. package/src/components/picker/helpers/useFieldType.d.ts +53 -23
  101. package/src/components/picker/helpers/usePickerLabel.d.ts +1 -1
  102. package/src/components/picker/helpers/usePickerLabel.js +2 -3
  103. package/src/components/picker/helpers/usePickerMigrationWarnings.d.ts +1 -1
  104. package/src/components/picker/helpers/usePickerMigrationWarnings.js +0 -12
  105. package/src/components/picker/helpers/usePickerSearch.d.ts +1 -1
  106. package/src/components/picker/helpers/usePickerSearch.js +4 -8
  107. package/src/components/picker/helpers/usePickerSelection.d.ts +1 -1
  108. package/src/components/picker/helpers/usePickerSelection.js +2 -10
  109. package/src/components/picker/index.js +4 -22
  110. package/src/components/picker/types.d.ts +1 -24
  111. package/src/components/segmentedControl/index.js +3 -3
  112. package/src/components/slider/GradientSlider.d.ts +1 -1
  113. package/src/components/slider/index.js +1 -1
  114. package/src/components/sortableGridList/SortableItem.js +13 -4
  115. package/src/components/sortableList/SortableListItem.js +13 -4
  116. package/src/components/stackAggregator/index.js +16 -11
  117. package/src/components/tabController/TabPage.js +18 -14
  118. package/src/components/text/Text.driver.new.d.ts +2 -2
  119. package/src/components/text/Text.driver.new.js +2 -2
  120. package/src/components/text/index.js +2 -3
  121. package/src/components/textField/Input.js +0 -1
  122. package/src/components/textField/TextField.driver.new.d.ts +2 -2
  123. package/src/components/textField/TextField.driver.new.js +2 -2
  124. package/src/components/textField/presets/outline.d.ts +106 -46
  125. package/src/components/textField/presets/underline.d.ts +106 -46
  126. package/src/components/textField/types.js +1 -0
  127. package/src/components/textField/usePreset.d.ts +72 -44
  128. package/src/components/timeline/types.js +3 -0
  129. package/src/{incubator/hooks/useHiddenLocation.web.d.ts → hooks/useHiddenLocation/index.d.ts} +1 -1
  130. package/src/{incubator/hooks/useHiddenLocation.d.ts → hooks/useHiddenLocation/index.web.d.ts} +1 -1
  131. package/src/incubator/expandableOverlay/ExpandableOverlay.driver.js +1 -1
  132. package/src/incubator/expandableOverlay/index.d.ts +42 -3
  133. package/src/incubator/expandableOverlay/index.js +1 -4
  134. package/src/incubator/index.d.ts +0 -2
  135. package/src/incubator/index.js +0 -2
  136. package/src/incubator/slider/SliderPresenter.js +2 -1
  137. package/src/incubator/toast/index.js +1 -1
  138. package/src/index.d.ts +3 -10
  139. package/src/index.js +42 -162
  140. package/src/testkit/index.d.ts +1 -1
  141. package/src/testkit/index.js +1 -1
  142. package/src/testkit/new/Component.driver.d.ts +4 -1
  143. package/src/testkit/new/Component.driver.js +3 -3
  144. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReactHacks.java +0 -30
  145. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReflectionUtils.java +0 -34
  146. package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/DefaultKeyListener.java +0 -33
  147. package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/KeyListenerProxy.java +0 -53
  148. package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerModule.java +0 -54
  149. package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerPackage.java +0 -28
  150. package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/ViewUtils.java +0 -36
  151. package/lib/components/HighlighterOverlayView.js +0 -40
  152. package/lib/components/Keyboard/KeyboardInput/CustomKeyboardView/CustomKeyboardView.android.js +0 -28
  153. package/lib/components/Keyboard/KeyboardInput/utils/KeyboardUtils.d.ts +0 -11
  154. package/lib/components/Keyboard/KeyboardInput/utils/KeyboardUtils.js +0 -17
  155. package/panningViews.d.ts +0 -2
  156. package/panningViews.js +0 -1
  157. package/react-native.config.js +0 -22
  158. package/sharedTransition.d.ts +0 -2
  159. package/sharedTransition.js +0 -1
  160. package/src/components/dialog/DialogDismissibleView.d.ts +0 -34
  161. package/src/components/dialog/DialogDismissibleView.js +0 -184
  162. package/src/components/dialog/OverlayFadingBackground.d.ts +0 -14
  163. package/src/components/dialog/OverlayFadingBackground.js +0 -45
  164. package/src/components/panningViews/asPanViewConsumer.d.ts +0 -3
  165. package/src/components/panningViews/asPanViewConsumer.js +0 -16
  166. package/src/components/panningViews/panDismissibleView.d.ts +0 -51
  167. package/src/components/panningViews/panDismissibleView.js +0 -350
  168. package/src/components/panningViews/panGestureView.d.ts +0 -23
  169. package/src/components/panningViews/panGestureView.js +0 -156
  170. package/src/components/panningViews/panListenerView.d.ts +0 -66
  171. package/src/components/panningViews/panListenerView.js +0 -155
  172. package/src/components/panningViews/panResponderView.d.ts +0 -19
  173. package/src/components/panningViews/panResponderView.js +0 -79
  174. package/src/components/panningViews/panningContext.d.ts +0 -3
  175. package/src/components/panningViews/panningContext.js +0 -4
  176. package/src/components/panningViews/panningProvider.d.ts +0 -73
  177. package/src/components/panningViews/panningProvider.js +0 -101
  178. package/src/components/sharedTransition/ShareTransitionContext.js +0 -3
  179. package/src/components/sharedTransition/SharedArea.js +0 -153
  180. package/src/components/sharedTransition/SourceElement.js +0 -44
  181. package/src/components/sharedTransition/TargetElement.js +0 -38
  182. package/src/components/sharedTransition/index.js +0 -9
  183. package/src/incubator/dialog/dialog.api.json +0 -54
  184. package/src/incubator/dialog/index.d.ts +0 -15
  185. package/src/incubator/dialog/index.js +0 -218
  186. /package/lib/components/{HighlighterOverlayView.web.js → HighlighterOverlayView/index.web.js} +0 -0
  187. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.d.ts +0 -0
  188. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.js +0 -0
  189. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.web.d.ts +0 -0
  190. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.web.js +0 -0
  191. /package/lib/components/Keyboard/{KeyboardInput/utils/EventEmitterManager.d.ts → KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.d.ts} +0 -0
  192. /package/lib/components/Keyboard/{KeyboardInput/utils/EventEmitterManager.js → KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.js} +0 -0
  193. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.android.d.ts +0 -0
  194. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.android.js +0 -0
  195. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.ios.d.ts +0 -0
  196. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.ios.js +0 -0
  197. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/index.d.ts +0 -0
  198. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/index.js +0 -0
  199. /package/lib/components/Keyboard/{KeyboardTracking → KeyboardAwareInsetsView}/keyboardAwareInsetsView.api.json +0 -0
  200. /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.android.d.ts +0 -0
  201. /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.android.js +0 -0
  202. /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.js +0 -0
  203. /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.web.d.ts +0 -0
  204. /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.web.js +0 -0
  205. /package/src/{incubator → components}/dialog/Dialog.driver.new.d.ts +0 -0
  206. /package/src/{incubator → components}/dialog/Dialog.driver.new.js +0 -0
  207. /package/src/{incubator → components}/dialog/DialogHeader.d.ts +0 -0
  208. /package/src/{incubator → components}/dialog/DialogHeader.js +0 -0
  209. /package/src/{incubator → components}/dialog/useDialogContent.js +0 -0
  210. /package/src/{incubator → components}/panView/panningUtil.d.ts +0 -0
  211. /package/src/{incubator → components}/panView/panningUtil.js +0 -0
  212. /package/src/{incubator → components}/panView/usePanGesture.js +0 -0
  213. /package/src/{incubator/hooks/useHiddenLocation.js → hooks/useHiddenLocation/index.js} +0 -0
  214. /package/src/{incubator/hooks/useHiddenLocation.web.js → hooks/useHiddenLocation/index.web.js} +0 -0
@@ -22,8 +22,8 @@ const HINT_MIN_WIDTH = 68;
22
22
  const Hint = props => {
23
23
  const {
24
24
  visible,
25
- useModal,
26
- position,
25
+ useModal = true,
26
+ position = HintPositions.BOTTOM,
27
27
  children,
28
28
  message,
29
29
  containerWidth = Constants.windowWidth,
@@ -69,6 +69,7 @@ const Hint = props => {
69
69
  if (targetRef.current && hintRef.current) {
70
70
  focusAccessibilityOnHint(targetRef.current, hintRef.current);
71
71
  }
72
+ // eslint-disable-next-line react-hooks/exhaustive-deps
72
73
  }, []);
73
74
  const targetLayout = useMemo(() => {
74
75
  return isUsingModal ? targetLayoutInWindowState : targetLayoutState;
@@ -78,6 +79,7 @@ const Hint = props => {
78
79
  if (hintRef.current) {
79
80
  focusAccessibilityOnHint(targetRef.current, hintRef.current);
80
81
  }
82
+ // eslint-disable-next-line react-hooks/exhaustive-deps
81
83
  }, []);
82
84
  const showHint = !!targetLayout;
83
85
  const {
@@ -240,10 +242,6 @@ const styles = StyleSheet.create({
240
242
  }
241
243
  });
242
244
  Hint.displayName = 'Hint';
243
- Hint.defaultProps = {
244
- position: HintPositions.BOTTOM,
245
- useModal: true
246
- };
247
245
  Hint.positions = HintPositions;
248
246
  export { HintProps, Hint };
249
247
 
@@ -95,6 +95,10 @@ class Image extends PureComponent {
95
95
  };
96
96
  onError = event => {
97
97
  if (event.nativeEvent.error) {
98
+ // TODO: RN 77 hack - test in future releases (ticket 4835)
99
+ if (Constants.isIOS && this.props.source === undefined) {
100
+ return;
101
+ }
98
102
  this.setState({
99
103
  error: true
100
104
  });
@@ -110,21 +110,6 @@ export default {
110
110
  get PageControl() {
111
111
  return require('./pageControl').default;
112
112
  },
113
- get PanningProvider() {
114
- return require('./panningViews/panningProvider').default;
115
- },
116
- get PanGestureView() {
117
- return require('./panningViews/panGestureView').default;
118
- },
119
- get PanListenerView() {
120
- return require('./panningViews/panListenerView').default;
121
- },
122
- get PanDismissibleView() {
123
- return require('./panningViews/panDismissibleView').default;
124
- },
125
- get PanResponderView() {
126
- return require('./panningViews/panResponderView').default;
127
- },
128
113
  get Picker() {
129
114
  return require('./picker').default;
130
115
  },
@@ -158,10 +143,6 @@ export default {
158
143
  get RadioGroup() {
159
144
  return require('./radioButton').RadioGroup;
160
145
  },
161
-
162
- get SharedTransition() {
163
- return require('./sharedTransition').default;
164
- },
165
146
  get StackAggregator() {
166
147
  return require('./stackAggregator').default;
167
148
  },
@@ -1,7 +1,10 @@
1
1
  export let MarqueeDirections = /*#__PURE__*/function (MarqueeDirections) {
2
2
  MarqueeDirections["RIGHT"] = "RIGHT";
3
+ //LTR
3
4
  MarqueeDirections["LEFT"] = "LEFT";
5
+ //RTL
4
6
  MarqueeDirections["UP"] = "UP";
5
- MarqueeDirections["DOWN"] = "DOWN";
7
+ //Bottom Up
8
+ MarqueeDirections["DOWN"] = "DOWN"; //Up To Bottom
6
9
  return MarqueeDirections;
7
10
  }({});
@@ -40,6 +40,11 @@ export interface ModalProps extends RNModalProps {
40
40
  * Send additional props to the KeyboardAvoidingView (iOS only)
41
41
  */
42
42
  keyboardAvoidingViewProps?: KeyboardAvoidingViewProps;
43
+ /**
44
+ * Fix RNModal's interaction with react-native-reanimated (Android only, default: true)
45
+ * See this https://github.com/software-mansion/react-native-reanimated/issues/6659#issuecomment-2704931585
46
+ */
47
+ fixReanimatedInteraction?: boolean;
43
48
  }
44
49
  /**
45
50
  * @description: Component that present content on top of the invoking screen
@@ -55,6 +55,7 @@ class Modal extends Component {
55
55
  }
56
56
  render() {
57
57
  const {
58
+ fixReanimatedInteraction = true,
58
59
  blurView,
59
60
  enableModalBlur,
60
61
  visible,
@@ -76,16 +77,19 @@ class Modal extends Component {
76
77
  style: [styles.fill, keyboardAvoidingViewProps?.style]
77
78
  } : {};
78
79
  const Container = blurView ? blurView : defaultContainer;
79
- return <RNModal visible={Boolean(visible)} {...others}>
80
- <GestureContainer {...gestureContainerProps}>
81
- <KeyboardAvoidingContainer {...keyboardAvoidingContainerProps}>
82
- <Container style={styles.fill} blurType="light">
83
- {this.renderTouchableOverlay()}
84
- {this.props.children}
85
- </Container>
86
- </KeyboardAvoidingContainer>
87
- </GestureContainer>
88
- </RNModal>;
80
+ const HackContainer = fixReanimatedInteraction && Constants.isAndroid ? View : React.Fragment;
81
+ return <HackContainer>
82
+ <RNModal visible={Boolean(visible)} {...others}>
83
+ <GestureContainer {...gestureContainerProps}>
84
+ <KeyboardAvoidingContainer {...keyboardAvoidingContainerProps}>
85
+ <Container style={styles.fill} blurType="light">
86
+ {this.renderTouchableOverlay()}
87
+ {this.props.children}
88
+ </Container>
89
+ </KeyboardAvoidingContainer>
90
+ </GestureContainer>
91
+ </RNModal>
92
+ </HackContainer>;
89
93
  }
90
94
  }
91
95
  const styles = StyleSheet.create({
@@ -38,6 +38,11 @@
38
38
  "name": "keyboardAvoidingViewProps",
39
39
  "type": "object",
40
40
  "description": "Send additional props to the KeyboardAvoidingView (iOS only)"
41
+ },
42
+ {
43
+ "name": "fixReanimatedInteraction",
44
+ "type": "boolean",
45
+ "description": "Fix RNModal's interaction with react-native-reanimated (Android only, default: true)"
41
46
  }
42
47
  ],
43
48
  "snippet": [
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- import { ViewProps } from '../../components/view';
3
+ import { ViewProps } from '../view';
4
4
  import { PanningDirections, PanningDirectionsEnum } from './panningUtil';
5
- import { PanGestureProps, PanViewDirections, PanViewDirectionsEnum, PanViewDismissThreshold, DEFAULT_DIRECTIONS, DEFAULT_ANIMATION_CONFIG } from './usePanGesture';
6
- export { PanningDirections, PanningDirectionsEnum, PanViewDirections, PanViewDirectionsEnum, PanViewDismissThreshold, DEFAULT_DIRECTIONS, DEFAULT_ANIMATION_CONFIG };
5
+ import { PanGestureProps, PanViewDirections, PanViewDirectionsEnum, PanViewDismissThreshold } from './usePanGesture';
6
+ export { PanningDirections, PanningDirectionsEnum, PanViewDirections, PanViewDirectionsEnum, PanViewDismissThreshold };
7
7
  export interface PanViewProps extends Omit<PanGestureProps, 'hiddenLocation'>, ViewProps {
8
8
  /**
9
9
  * Add a style to the container
@@ -2,11 +2,11 @@ import React from 'react';
2
2
  import { useAnimatedStyle } from 'react-native-reanimated';
3
3
  import { GestureDetector, gestureHandlerRootHOC } from 'react-native-gesture-handler';
4
4
  import { asBaseComponent } from "../../commons/new";
5
- import View from "../../components/view";
6
- import useHiddenLocation from "../hooks/useHiddenLocation";
5
+ import View from "../view";
6
+ import useHiddenLocation from "../../hooks/useHiddenLocation";
7
7
  import { PanningDirections, PanningDirectionsEnum } from "./panningUtil";
8
- import usePanGesture, { PanViewDirections, PanViewDirectionsEnum, PanViewDismissThreshold, DEFAULT_DIRECTIONS, DEFAULT_ANIMATION_CONFIG } from "./usePanGesture";
9
- export { PanningDirections, PanningDirectionsEnum, PanViewDirections, PanViewDirectionsEnum, PanViewDismissThreshold, DEFAULT_DIRECTIONS, DEFAULT_ANIMATION_CONFIG };
8
+ import usePanGesture, { PanViewDirections, PanViewDirectionsEnum, PanViewDismissThreshold, DEFAULT_DIRECTIONS } from "./usePanGesture";
9
+ export { PanningDirections, PanningDirectionsEnum, PanViewDirections, PanViewDirectionsEnum, PanViewDismissThreshold };
10
10
  const PanView = props => {
11
11
  const {
12
12
  directions = DEFAULT_DIRECTIONS,
@@ -1,5 +1,5 @@
1
1
  import { PanningDirections, PanningDirectionsEnum, PanningDismissThreshold } from './panningUtil';
2
- import type { HiddenLocation } from '../hooks/useHiddenLocation';
2
+ import type { HiddenLocation } from '../../hooks/useHiddenLocation';
3
3
  export type PanViewDirections = PanningDirections;
4
4
  export declare const PanViewDirectionsEnum: typeof PanningDirectionsEnum;
5
5
  export type PanViewDismissThreshold = PanningDismissThreshold;
@@ -1,5 +1,5 @@
1
- import { ComponentProps } from '../../testkit/new/Component.driver';
2
- export declare const PickerDriver: (props: ComponentProps, useDialog: boolean) => {
1
+ import { ComponentDriverOptions, ComponentProps } from '../../testkit/new/Component.driver';
2
+ export declare const PickerDriver: (props: ComponentProps, useDialog: boolean, options?: ComponentDriverOptions) => {
3
3
  exists: () => boolean;
4
4
  getValue: () => string | undefined;
5
5
  open: () => void;
@@ -1,9 +1,9 @@
1
1
  import { TextFieldDriver } from "../textField/TextField.driver.new";
2
2
  import { ModalDriver } from "../modal/Modal.driver.new";
3
- import { DialogDriver } from "../../incubator/dialog/Dialog.driver.new";
3
+ import { DialogDriver } from "../dialog/Dialog.driver.new";
4
4
  import { ButtonDriver } from "../button/Button.driver.new";
5
5
  import { ExpandableOverlayDriver } from "../../incubator/expandableOverlay/ExpandableOverlay.driver";
6
- export const PickerDriver = (props, useDialog) => {
6
+ export const PickerDriver = (props, useDialog, options) => {
7
7
  const expandableOverlayDriver = ExpandableOverlayDriver({
8
8
  renderTree: props.renderTree,
9
9
  testID: props.testID
@@ -11,7 +11,7 @@ export const PickerDriver = (props, useDialog) => {
11
11
  const textFieldDriver = TextFieldDriver({
12
12
  renderTree: props.renderTree,
13
13
  testID: `${props.testID}.input`
14
- });
14
+ }, options);
15
15
  const modalDriver = ModalDriver({
16
16
  renderTree: props.renderTree,
17
17
  testID: `${props.testID}.overlay`
@@ -11,7 +11,7 @@ import View from "../view";
11
11
  import TouchableOpacity from "../touchableOpacity";
12
12
  import Image from "../image";
13
13
  import Text from "../text";
14
- import { getItemLabel, isItemSelected } from "./PickerPresenter";
14
+ import { isItemSelected } from "./PickerPresenter";
15
15
  import PickerContext from "./PickerContext";
16
16
  /**
17
17
  * @description: Picker.Item, for configuring the Picker's selectable options
@@ -29,14 +29,8 @@ const PickerItem = props => {
29
29
  testID
30
30
  } = props;
31
31
  const context = useContext(PickerContext);
32
- const {
33
- migrate
34
- } = context;
35
32
  const customRenderItem = props.renderItem || context.renderItem;
36
- // @ts-expect-error TODO: fix after removing migrate prop completely
37
- const itemValue = !migrate && typeof value === 'object' ? value?.value : value;
38
- const isSelected = isItemSelected(itemValue, context.value);
39
- const itemLabel = getItemLabel(label, value, props.getItemLabel || context.getItemLabel);
33
+ const isSelected = isItemSelected(value, context.value);
40
34
  const selectedCounter = context.selectionLimit && _isArray(context.value) && context.value?.length;
41
35
  const accessibilityProps = {
42
36
  accessibilityState: isSelected ? {
@@ -67,23 +61,15 @@ const PickerItem = props => {
67
61
  if (onPress && (await onPress(context.isMultiMode ? !isSelected : undefined, props)) === false) {
68
62
  return;
69
63
  }
70
- if (migrate) {
71
- context.onPress(value);
72
- } else {
73
- // @ts-expect-error TODO: fix after removing migrate prop completely
74
- context.onPress(typeof value === 'object' || context.isMultiMode ? value : {
75
- value,
76
- label: itemLabel
77
- });
78
- }
79
- }, [migrate, value, context.onPress, onPress]);
64
+ context.onPress(value);
65
+ }, [value, context.onPress, onPress]);
80
66
  const onSelectedLayout = useCallback((...args) => {
81
67
  _invoke(context, 'onSelectedLayout', ...args);
82
68
  }, []);
83
69
  const _renderItem = () => {
84
70
  return <View style={styles.container} flex row spread centerV>
85
71
  <Text numberOfLines={1} style={itemLabelStyle}>
86
- {itemLabel}
72
+ {label}
87
73
  </Text>
88
74
  {selectedIndicator}
89
75
  </View>;
@@ -93,7 +79,7 @@ const PickerItem = props => {
93
79
  ...props,
94
80
  isSelected,
95
81
  isItemDisabled
96
- }, itemLabel) : _renderItem()}
82
+ }, label) : _renderItem()}
97
83
  </TouchableOpacity>;
98
84
  };
99
85
  const styles = StyleSheet.create({
@@ -4,5 +4,4 @@ export declare function extractPickerItems(props: PickerProps): {
4
4
  label: any;
5
5
  }[];
6
6
  export declare function isItemSelected(childValue: PickerSingleValue, selectedValue?: PickerValue): boolean;
7
- export declare function getItemLabel(label: string, value: PickerValue, getItemLabel?: PickerProps['getItemLabel']): string | undefined;
8
7
  export declare function shouldFilterOut(searchValue: string, itemLabel?: string): boolean;
@@ -1,7 +1,5 @@
1
1
  import _lowerCase from "lodash/lowerCase";
2
2
  import _includes from "lodash/includes";
3
- import _get from "lodash/get";
4
- import _isObject from "lodash/isObject";
5
3
  import _find from "lodash/find";
6
4
  import React from 'react';
7
5
  export function extractPickerItems(props) {
@@ -20,33 +18,13 @@ export function isItemSelected(childValue, selectedValue) {
20
18
  let isSelected = false;
21
19
  if (Array.isArray(selectedValue)) {
22
20
  isSelected = _find(selectedValue, v => {
23
- // @ts-expect-error TODO: fix after removing migrate prop completely
24
- return v === childValue || typeof v === 'object' && v?.value === childValue;
21
+ return v === childValue;
25
22
  }) !== undefined;
26
23
  } else {
27
24
  isSelected = childValue === selectedValue;
28
25
  }
29
26
  return isSelected;
30
27
  }
31
-
32
- // export function getItemValue(props) {
33
- // if (_.isArray(props.value)) {
34
- // return props.getItemValue ? _.map(props.value, item => props.getItemValue(item)) : _.map(props.value, 'value');
35
- // } else if (!_.isObject(props.value)) {
36
- // return props.value;
37
- // }
38
- // return _.invoke(props, 'getItemValue', props.value) || _.get(props.value, 'value');
39
- // }
40
-
41
- export function getItemLabel(label, value, getItemLabel) {
42
- if (_isObject(value)) {
43
- if (getItemLabel) {
44
- return getItemLabel(value);
45
- }
46
- return _get(value, 'label');
47
- }
48
- return label;
49
- }
50
28
  export function shouldFilterOut(searchValue, itemLabel) {
51
29
  return !_includes(_lowerCase(itemLabel), _lowerCase(searchValue));
52
30
  }
@@ -11,7 +11,6 @@
11
11
  "https://github.com/wix/react-native-ui-lib/blob/master/demo/showcase/Picker/CustomPicker.gif?raw=true"
12
12
  ],
13
13
  "props": [
14
- {"name": "migrate", "type": "boolean", "description": "Temporary prop required for migration to Picker's new API"},
15
14
  {"name": "value", "type": "string | number", "description": "Picker current value"},
16
15
  {
17
16
  "name": "onChange",
@@ -13,11 +13,6 @@
13
13
  {"name": "value", "type": "string | number", "description": "Item's value"},
14
14
  {"name": "label", "type": "string", "description": "Item's label"},
15
15
  {"name": "labelStyle", "type": "ViewStyle", "description": "Item's label style"},
16
- {
17
- "name": "getItemLabel",
18
- "type": "(value: string | number) => string",
19
- "description": "Custom function for the item label"
20
- },
21
16
  {"name": "isSelected", "type": "boolean", "description": "Is the item selected"},
22
17
  {"name": "selectedIcon", "type": "string", "description": "Pass to change the selected icon"},
23
18
  {"name": "selectedIconColor", "type": "ImageSource", "description": "Pass to change the selected icon color"},
@@ -13,7 +13,7 @@ declare const useFieldType: (props: UseFieldTypeProps) => {
13
13
  fontFamily?: string | undefined;
14
14
  fontSize?: number | undefined;
15
15
  fontStyle?: "normal" | "italic" | undefined;
16
- fontWeight?: "normal" | "bold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | undefined;
16
+ fontWeight?: "black" | 900 | 600 | "light" | 100 | "normal" | "bold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 200 | 300 | 400 | 500 | 700 | 800 | "ultralight" | "thin" | "medium" | "regular" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
17
17
  letterSpacing?: number | undefined;
18
18
  lineHeight?: number | undefined;
19
19
  textAlign?: "auto" | "left" | "right" | "center" | "justify" | undefined;
@@ -36,31 +36,41 @@ declare const useFieldType: (props: UseFieldTypeProps) => {
36
36
  borderBlockEndColor?: import("react-native/types").ColorValue | undefined;
37
37
  borderBlockStartColor?: import("react-native/types").ColorValue | undefined;
38
38
  borderBottomColor?: import("react-native/types").ColorValue | undefined;
39
- borderBottomEndRadius?: import("react-native/types").AnimatableNumericValue | undefined;
40
- borderBottomLeftRadius?: import("react-native/types").AnimatableNumericValue | undefined;
41
- borderBottomRightRadius?: import("react-native/types").AnimatableNumericValue | undefined;
42
- borderBottomStartRadius?: import("react-native/types").AnimatableNumericValue | undefined;
39
+ borderBottomEndRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
40
+ borderBottomLeftRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
41
+ borderBottomRightRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
42
+ borderBottomStartRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
43
43
  borderColor?: import("react-native/types").ColorValue | undefined;
44
44
  borderCurve?: "circular" | "continuous" | undefined;
45
45
  borderEndColor?: import("react-native/types").ColorValue | undefined;
46
- borderEndEndRadius?: import("react-native/types").AnimatableNumericValue | undefined;
47
- borderEndStartRadius?: import("react-native/types").AnimatableNumericValue | undefined;
46
+ borderEndEndRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
47
+ borderEndStartRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
48
48
  borderLeftColor?: import("react-native/types").ColorValue | undefined;
49
- borderRadius?: import("react-native/types").AnimatableNumericValue | undefined;
49
+ borderRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
50
50
  borderRightColor?: import("react-native/types").ColorValue | undefined;
51
51
  borderStartColor?: import("react-native/types").ColorValue | undefined;
52
- borderStartEndRadius?: import("react-native/types").AnimatableNumericValue | undefined;
53
- borderStartStartRadius?: import("react-native/types").AnimatableNumericValue | undefined;
52
+ borderStartEndRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
53
+ borderStartStartRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
54
54
  borderStyle?: "solid" | "dotted" | "dashed" | undefined;
55
55
  borderTopColor?: import("react-native/types").ColorValue | undefined;
56
- borderTopEndRadius?: import("react-native/types").AnimatableNumericValue | undefined;
57
- borderTopLeftRadius?: import("react-native/types").AnimatableNumericValue | undefined;
58
- borderTopRightRadius?: import("react-native/types").AnimatableNumericValue | undefined;
59
- borderTopStartRadius?: import("react-native/types").AnimatableNumericValue | undefined;
56
+ borderTopEndRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
57
+ borderTopLeftRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
58
+ borderTopRightRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
59
+ borderTopStartRadius?: string | import("react-native/types").AnimatableNumericValue | undefined;
60
+ outlineColor?: import("react-native/types").ColorValue | undefined;
61
+ outlineOffset?: import("react-native/types").AnimatableNumericValue | undefined;
62
+ outlineStyle?: "solid" | "dotted" | "dashed" | undefined;
63
+ outlineWidth?: import("react-native/types").AnimatableNumericValue | undefined;
60
64
  opacity?: import("react-native/types").AnimatableNumericValue | undefined;
61
65
  elevation?: number | undefined;
62
66
  pointerEvents?: "auto" | "none" | "box-none" | "box-only" | undefined;
63
- alignContent?: "center" | "flex-start" | "flex-end" | "stretch" | "space-between" | "space-around" | undefined;
67
+ isolation?: "auto" | "isolate" | undefined;
68
+ cursor?: import("react-native/types").CursorValue | undefined;
69
+ boxShadow?: string | readonly import("react-native/types").BoxShadowValue[] | undefined;
70
+ filter?: string | readonly import("react-native/types").FilterFunction[] | undefined;
71
+ mixBlendMode?: import("react-native/types").BlendMode | undefined;
72
+ experimental_backgroundImage?: string | readonly import("react-native/types").GradientValue[] | undefined;
73
+ alignContent?: "center" | "flex-start" | "flex-end" | "stretch" | "space-between" | "space-around" | "space-evenly" | undefined;
64
74
  alignItems?: import("react-native/types").FlexAlignType | undefined;
65
75
  alignSelf?: "auto" | import("react-native/types").FlexAlignType | undefined;
66
76
  aspectRatio?: string | number | undefined;
@@ -72,14 +82,15 @@ declare const useFieldType: (props: UseFieldTypeProps) => {
72
82
  borderTopWidth?: number | undefined;
73
83
  borderWidth?: number | undefined;
74
84
  bottom?: import("react-native/types").DimensionValue | undefined;
75
- display?: "none" | "flex" | undefined;
85
+ boxSizing?: "border-box" | "content-box" | undefined;
86
+ display?: "none" | "flex" | "contents" | undefined;
76
87
  end?: import("react-native/types").DimensionValue | undefined;
77
88
  flex?: number | undefined;
78
89
  flexBasis?: import("react-native/types").DimensionValue | undefined;
79
90
  flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
80
- rowGap?: number | undefined;
81
- gap?: number | undefined;
82
- columnGap?: number | undefined;
91
+ rowGap?: string | number | undefined;
92
+ gap?: string | number | undefined;
93
+ columnGap?: string | number | undefined;
83
94
  flexGrow?: number | undefined;
84
95
  flexShrink?: number | undefined;
85
96
  flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
@@ -109,13 +120,32 @@ declare const useFieldType: (props: UseFieldTypeProps) => {
109
120
  paddingStart?: import("react-native/types").DimensionValue | undefined;
110
121
  paddingTop?: import("react-native/types").DimensionValue | undefined;
111
122
  paddingVertical?: import("react-native/types").DimensionValue | undefined;
112
- position?: "absolute" | "relative" | undefined;
123
+ position?: "absolute" | "relative" | "static" | undefined;
113
124
  right?: import("react-native/types").DimensionValue | undefined;
114
125
  start?: import("react-native/types").DimensionValue | undefined;
115
126
  top?: import("react-native/types").DimensionValue | undefined;
116
127
  width?: import("react-native/types").DimensionValue | undefined;
117
128
  zIndex?: number | undefined;
118
129
  direction?: "ltr" | "rtl" | "inherit" | undefined;
130
+ inset?: import("react-native/types").DimensionValue | undefined;
131
+ insetBlock?: import("react-native/types").DimensionValue | undefined;
132
+ insetBlockEnd?: import("react-native/types").DimensionValue | undefined;
133
+ insetBlockStart?: import("react-native/types").DimensionValue | undefined;
134
+ insetInline?: import("react-native/types").DimensionValue | undefined;
135
+ insetInlineEnd?: import("react-native/types").DimensionValue | undefined;
136
+ insetInlineStart?: import("react-native/types").DimensionValue | undefined;
137
+ marginBlock?: import("react-native/types").DimensionValue | undefined;
138
+ marginBlockEnd?: import("react-native/types").DimensionValue | undefined;
139
+ marginBlockStart?: import("react-native/types").DimensionValue | undefined;
140
+ marginInline?: import("react-native/types").DimensionValue | undefined;
141
+ marginInlineEnd?: import("react-native/types").DimensionValue | undefined;
142
+ marginInlineStart?: import("react-native/types").DimensionValue | undefined;
143
+ paddingBlock?: import("react-native/types").DimensionValue | undefined;
144
+ paddingBlockEnd?: import("react-native/types").DimensionValue | undefined;
145
+ paddingBlockStart?: import("react-native/types").DimensionValue | undefined;
146
+ paddingInline?: import("react-native/types").DimensionValue | undefined;
147
+ paddingInlineEnd?: import("react-native/types").DimensionValue | undefined;
148
+ paddingInlineStart?: import("react-native/types").DimensionValue | undefined;
119
149
  shadowColor?: import("react-native/types").ColorValue | undefined;
120
150
  shadowOffset?: Readonly<{
121
151
  width: number;
@@ -123,7 +153,7 @@ declare const useFieldType: (props: UseFieldTypeProps) => {
123
153
  }> | undefined;
124
154
  shadowOpacity?: import("react-native/types").AnimatableNumericValue | undefined;
125
155
  shadowRadius?: number | undefined;
126
- transform?: string | (({
156
+ transform?: string | readonly (({
127
157
  perspective: import("react-native/types").AnimatableNumericValue;
128
158
  } & {
129
159
  rotate?: undefined;
@@ -244,7 +274,7 @@ declare const useFieldType: (props: UseFieldTypeProps) => {
244
274
  skewY?: undefined;
245
275
  matrix?: undefined;
246
276
  }) | ({
247
- translateX: import("react-native/types").AnimatableNumericValue;
277
+ translateX: import("react-native/types").AnimatableNumericValue | `${number}%`;
248
278
  } & {
249
279
  perspective?: undefined;
250
280
  rotate?: undefined;
@@ -259,7 +289,7 @@ declare const useFieldType: (props: UseFieldTypeProps) => {
259
289
  skewY?: undefined;
260
290
  matrix?: undefined;
261
291
  }) | ({
262
- translateY: import("react-native/types").AnimatableNumericValue;
292
+ translateY: import("react-native/types").AnimatableNumericValue | `${number}%`;
263
293
  } & {
264
294
  perspective?: undefined;
265
295
  rotate?: undefined;
@@ -1,5 +1,5 @@
1
1
  import { PickerProps, PickerValue } from '../types';
2
- interface UsePickerLabelProps extends Pick<PickerProps, 'value' | 'getLabel' | 'getItemLabel' | 'placeholder' | 'accessibilityLabel' | 'accessibilityHint'> {
2
+ interface UsePickerLabelProps extends Pick<PickerProps, 'value' | 'getLabel' | 'placeholder' | 'accessibilityLabel' | 'accessibilityHint'> {
3
3
  items: {
4
4
  value: string | number;
5
5
  label: string;
@@ -14,15 +14,14 @@ const usePickerLabel = props => {
14
14
  value,
15
15
  items,
16
16
  getLabel,
17
- getItemLabel,
18
17
  placeholder,
19
18
  accessibilityLabel,
20
19
  accessibilityHint
21
20
  } = props;
22
21
  const getLabelsFromArray = useCallback(value => {
23
22
  const itemsByValue = _keyBy(items, 'value');
24
- return _flow(arr => _map(arr, item => _isPlainObject(item) ? getItemLabel?.(item) || item?.label : itemsByValue[item]?.label), arr => _join(arr, ', '))(value);
25
- }, [getItemLabel, items]);
23
+ return _flow(arr => _map(arr, item => _isPlainObject(item) ? item?.label : itemsByValue[item]?.label), arr => _join(arr, ', '))(value);
24
+ }, [items]);
26
25
  const _getLabel = useCallback(value => {
27
26
  if (_isFunction(getLabel) && !_isUndefined(getLabel(value))) {
28
27
  return getLabel(value);
@@ -1,4 +1,4 @@
1
1
  import { PickerProps } from '../types';
2
- type UsePickerMigrationWarnings = Pick<PickerProps, 'children' | 'migrate' | 'getItemLabel' | 'getItemValue' | 'onShow'>;
2
+ type UsePickerMigrationWarnings = Pick<PickerProps, 'children' | 'onShow'>;
3
3
  declare const usePickerMigrationWarnings: (props: UsePickerMigrationWarnings) => void;
4
4
  export default usePickerMigrationWarnings;
@@ -6,24 +6,12 @@ import { LogService } from "../../../services";
6
6
  const usePickerMigrationWarnings = props => {
7
7
  const {
8
8
  children,
9
- migrate,
10
- getItemLabel,
11
- getItemValue,
12
9
  onShow
13
10
  } = props;
14
11
  useEffect(() => {
15
12
  if (children) {
16
13
  LogService.warn(`UILib Picker will stop supporting the 'children' prop in the next major version, please pass 'items' prop instead`);
17
14
  }
18
- if (migrate) {
19
- LogService.warn(`UILib Picker will stop supporting the 'migrate' prop in the next major version, please stop using it. The picker uses the new implementation by default.`);
20
- }
21
- if (getItemLabel) {
22
- LogService.warn(`UILib Picker will stop supporting the 'getItemLabel' prop in the next major version, please pass the 'getItemLabel' prop to the specific item instead`);
23
- }
24
- if (getItemValue) {
25
- LogService.warn(`UILib Picker will stop supporting the 'getItemValue' prop in the next major version, please stop using it. The value will be extract from 'items' prop instead`);
26
- }
27
15
  if (onShow) {
28
16
  LogService.warn(`UILib Picker will stop supporting the 'onShow' prop in the next major version, please pass the 'onShow' prop from the 'pickerModalProps' instead`);
29
17
  }
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { PickerProps } from '../types';
3
- type UsePickerSearchProps = Pick<PickerProps, 'showSearch' | 'onSearchChange' | 'children' | 'getItemLabel' | 'items'>;
3
+ type UsePickerSearchProps = Pick<PickerProps, 'showSearch' | 'onSearchChange' | 'children' | 'items'>;
4
4
  declare const usePickerSearch: (props: UsePickerSearchProps) => {
5
5
  setSearchValue: import("react").Dispatch<import("react").SetStateAction<string>>;
6
6
  onSearchChange: (searchValue: string) => void;
@@ -1,13 +1,12 @@
1
1
  import _filter from "lodash/filter";
2
2
  import _isEmpty from "lodash/isEmpty";
3
3
  import { useCallback, useState, useMemo } from 'react';
4
- import { getItemLabel as getItemLabelPresenter, shouldFilterOut } from "../PickerPresenter";
4
+ import { shouldFilterOut } from "../PickerPresenter";
5
5
  const usePickerSearch = props => {
6
6
  const {
7
7
  showSearch,
8
8
  onSearchChange,
9
9
  children,
10
- getItemLabel,
11
10
  items
12
11
  } = props;
13
12
  const [searchValue, setSearchValue] = useState('');
@@ -15,16 +14,13 @@ const usePickerSearch = props => {
15
14
  if (showSearch && !_isEmpty(searchValue)) {
16
15
  return _filter(items, item => {
17
16
  const {
18
- label,
19
- value,
20
- getItemLabel: childGetItemLabel
17
+ label
21
18
  } = item.props || item;
22
- const itemLabel = getItemLabelPresenter(label, value, childGetItemLabel || getItemLabel);
23
- return !shouldFilterOut(searchValue, itemLabel);
19
+ return !shouldFilterOut(searchValue, label);
24
20
  });
25
21
  }
26
22
  return items;
27
- }, [showSearch, searchValue, getItemLabel]);
23
+ }, [showSearch, searchValue]);
28
24
  const filteredItems = useMemo(() => {
29
25
  return filterItems(children || items);
30
26
  }, [filterItems, items, children]);
@@ -1,6 +1,6 @@
1
1
  import { RefObject } from 'react';
2
2
  import { PickerProps, PickerValue, PickerSingleValue, PickerMultiValue } from '../types';
3
- interface UsePickerSelectionProps extends Pick<PickerProps, 'migrate' | 'value' | 'onChange' | 'getItemValue' | 'topBarProps' | 'mode' | 'items'> {
3
+ interface UsePickerSelectionProps extends Pick<PickerProps, 'value' | 'onChange' | 'topBarProps' | 'mode' | 'items'> {
4
4
  pickerExpandableRef: RefObject<any>;
5
5
  setSearchValue: (searchValue: string) => void;
6
6
  }