UNPKG

27.4 kBJavaScriptView Raw
1/**
2 * Copyright (c) Facebook, Inc. and its affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 * @format
8 * @flow
9 */
10
11'use strict';
12
13import typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/AccessibilityInfo';
14import typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator';
15import typeof Button from './Libraries/Components/Button';
16import typeof CheckBox from './Libraries/Components/CheckBox/CheckBox';
17import typeof DatePickerIOS from './Libraries/Components/DatePicker/DatePickerIOS';
18import typeof DrawerLayoutAndroid from './Libraries/Components/DrawerAndroid/DrawerLayoutAndroid';
19import typeof FlatList from './Libraries/Lists/FlatList';
20import typeof Image from './Libraries/Image/Image';
21import typeof ImageBackground from './Libraries/Image/ImageBackground';
22import typeof InputAccessoryView from './Libraries/Components/TextInput/InputAccessoryView';
23import typeof KeyboardAvoidingView from './Libraries/Components/Keyboard/KeyboardAvoidingView';
24import typeof MaskedViewIOS from './Libraries/Components/MaskedView/MaskedViewIOS';
25import typeof Modal from './Libraries/Modal/Modal';
26import typeof Picker from './Libraries/Components/Picker/Picker';
27import typeof PickerIOS from './Libraries/Components/Picker/PickerIOS';
28import typeof ProgressBarAndroid from './Libraries/Components/ProgressBarAndroid/ProgressBarAndroid';
29import typeof ProgressViewIOS from './Libraries/Components/ProgressViewIOS/ProgressViewIOS';
30import typeof SafeAreaView from './Libraries/Components/SafeAreaView/SafeAreaView';
31import typeof ScrollView from './Libraries/Components/ScrollView/ScrollView';
32import typeof SectionList from './Libraries/Lists/SectionList';
33import typeof SegmentedControlIOS from './Libraries/Components/SegmentedControlIOS/SegmentedControlIOS';
34import typeof Slider from './Libraries/Components/Slider/Slider';
35import typeof Switch from './Libraries/Components/Switch/Switch';
36import typeof RefreshControl from './Libraries/Components/RefreshControl/RefreshControl';
37import typeof StatusBar from './Libraries/Components/StatusBar/StatusBar';
38import typeof Text from './Libraries/Text/Text';
39import typeof TextInput from './Libraries/Components/TextInput/TextInput';
40import typeof Touchable from './Libraries/Components/Touchable/Touchable';
41import typeof TouchableHighlight from './Libraries/Components/Touchable/TouchableHighlight';
42import typeof TouchableNativeFeedback from './Libraries/Components/Touchable/TouchableNativeFeedback';
43import typeof TouchableOpacity from './Libraries/Components/Touchable/TouchableOpacity';
44import typeof TouchableWithoutFeedback from './Libraries/Components/Touchable/TouchableWithoutFeedback';
45import typeof View from './Libraries/Components/View/View';
46import typeof VirtualizedList from './Libraries/Lists/VirtualizedList';
47import typeof VirtualizedSectionList from './Libraries/Lists/VirtualizedSectionList';
48import typeof ActionSheetIOS from './Libraries/ActionSheetIOS/ActionSheetIOS';
49import typeof Alert from './Libraries/Alert/Alert';
50import typeof Animated from './Libraries/Animated/src/Animated';
51import typeof Appearance from './Libraries/Utilities/Appearance';
52import typeof AppRegistry from './Libraries/ReactNative/AppRegistry';
53import typeof AppState from './Libraries/AppState/AppState';
54import typeof AsyncStorage from './Libraries/Storage/AsyncStorage';
55import typeof BackHandler from './Libraries/Utilities/BackHandler';
56import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';
57import typeof DatePickerAndroid from './Libraries/Components/DatePickerAndroid/DatePickerAndroid';
58import typeof DeviceInfo from './Libraries/Utilities/DeviceInfo';
59import typeof DevSettings from './Libraries/Utilities/DevSettings';
60import typeof Dimensions from './Libraries/Utilities/Dimensions';
61import typeof Easing from './Libraries/Animated/src/Easing';
62import typeof ReactNative from './Libraries/Renderer/shims/ReactNative';
63import typeof I18nManager from './Libraries/ReactNative/I18nManager';
64import typeof ImagePickerIOS from './Libraries/Image/ImagePickerIOS';
65import typeof InteractionManager from './Libraries/Interaction/InteractionManager';
66import typeof Keyboard from './Libraries/Components/Keyboard/Keyboard';
67import typeof LayoutAnimation from './Libraries/LayoutAnimation/LayoutAnimation';
68import typeof Linking from './Libraries/Linking/Linking';
69import typeof NativeDialogManagerAndroid from './Libraries/NativeModules/specs/NativeDialogManagerAndroid';
70import typeof NativeEventEmitter from './Libraries/EventEmitter/NativeEventEmitter';
71import typeof Networking from './Libraries/Network/RCTNetworking';
72import typeof PanResponder from './Libraries/Interaction/PanResponder';
73import typeof PermissionsAndroid from './Libraries/PermissionsAndroid/PermissionsAndroid';
74import typeof PixelRatio from './Libraries/Utilities/PixelRatio';
75import typeof PushNotificationIOS from './Libraries/PushNotificationIOS/PushNotificationIOS';
76import typeof Settings from './Libraries/Settings/Settings';
77import typeof Share from './Libraries/Share/Share';
78import typeof StatusBarIOS from './Libraries/Components/StatusBar/StatusBarIOS';
79import typeof StyleSheet from './Libraries/StyleSheet/StyleSheet';
80import typeof Systrace from './Libraries/Performance/Systrace';
81import typeof ToastAndroid from './Libraries/Components/ToastAndroid/ToastAndroid';
82import typeof * as TurboModuleRegistry from './Libraries/TurboModule/TurboModuleRegistry';
83import typeof TVEventHandler from './Libraries/Components/AppleTV/TVEventHandler';
84import typeof UIManager from './Libraries/ReactNative/UIManager';
85import typeof useColorScheme from './Libraries/Utilities/useColorScheme';
86import typeof useWindowDimensions from './Libraries/Utilities/useWindowDimensions';
87import typeof UTFSequence from './Libraries/UTFSequence';
88import typeof Vibration from './Libraries/Vibration/Vibration';
89import typeof YellowBox from './Libraries/YellowBox/YellowBox';
90import typeof RCTDeviceEventEmitter from './Libraries/EventEmitter/RCTDeviceEventEmitter';
91import typeof RCTNativeAppEventEmitter from './Libraries/EventEmitter/RCTNativeAppEventEmitter';
92import typeof NativeModules from './Libraries/BatchedBridge/NativeModules';
93import typeof Platform from './Libraries/Utilities/Platform';
94import typeof processColor from './Libraries/StyleSheet/processColor';
95import typeof RootTagContext from './Libraries/ReactNative/RootTagContext';
96import typeof DeprecatedColorPropType from './Libraries/DeprecatedPropTypes/DeprecatedColorPropType';
97import typeof DeprecatedEdgeInsetsPropType from './Libraries/DeprecatedPropTypes/DeprecatedEdgeInsetsPropType';
98import typeof DeprecatedPointPropType from './Libraries/DeprecatedPropTypes/DeprecatedPointPropType';
99import typeof DeprecatedViewPropTypes from './Libraries/DeprecatedPropTypes/DeprecatedViewPropTypes';
100
101import type {HostComponent as _HostComponentInternal} from './Libraries/Renderer/shims/ReactNativeTypes';
102
103export type HostComponent<T> = _HostComponentInternal<T>;
104
105const invariant = require('invariant');
106const warnOnce = require('./Libraries/Utilities/warnOnce');
107
108module.exports = {
109 // Components
110 get AccessibilityInfo(): AccessibilityInfo {
111 return require('./Libraries/Components/AccessibilityInfo/AccessibilityInfo');
112 },
113 get ActivityIndicator(): ActivityIndicator {
114 return require('./Libraries/Components/ActivityIndicator/ActivityIndicator');
115 },
116 get Button(): Button {
117 return require('./Libraries/Components/Button');
118 },
119 get CheckBox(): CheckBox {
120 warnOnce(
121 'checkBox-moved',
122 'CheckBox has been extracted from react-native core and will be removed in a future release. ' +
123 "It can now be installed and imported from '@react-native-community/checkbox' instead of 'react-native'. " +
124 'See https://github.com/react-native-community/react-native-checkbox',
125 );
126 return require('./Libraries/Components/CheckBox/CheckBox');
127 },
128 get DatePickerIOS(): DatePickerIOS {
129 warnOnce(
130 'DatePickerIOS-merged',
131 'DatePickerIOS has been merged with DatePickerAndroid and will be removed in a future release. ' +
132 "It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. " +
133 'See https://github.com/react-native-community/datetimepicker',
134 );
135 return require('./Libraries/Components/DatePicker/DatePickerIOS');
136 },
137 get DrawerLayoutAndroid(): DrawerLayoutAndroid {
138 return require('./Libraries/Components/DrawerAndroid/DrawerLayoutAndroid');
139 },
140 get FlatList(): FlatList {
141 return require('./Libraries/Lists/FlatList');
142 },
143 get Image(): Image {
144 return require('./Libraries/Image/Image');
145 },
146 get ImageBackground(): ImageBackground {
147 return require('./Libraries/Image/ImageBackground');
148 },
149 get InputAccessoryView(): InputAccessoryView {
150 return require('./Libraries/Components/TextInput/InputAccessoryView');
151 },
152 get KeyboardAvoidingView(): KeyboardAvoidingView {
153 return require('./Libraries/Components/Keyboard/KeyboardAvoidingView');
154 },
155 get MaskedViewIOS(): MaskedViewIOS {
156 warnOnce(
157 'maskedviewios-moved',
158 'MaskedViewIOS has been extracted from react-native core and will be removed in a future release. ' +
159 "It can now be installed and imported from '@react-native-community/masked-view' instead of 'react-native'. " +
160 'See https://github.com/react-native-community/react-native-masked-view',
161 );
162 return require('./Libraries/Components/MaskedView/MaskedViewIOS');
163 },
164 get Modal(): Modal {
165 return require('./Libraries/Modal/Modal');
166 },
167 get Picker(): Picker {
168 warnOnce(
169 'picker-moved',
170 'Picker has been extracted from react-native core and will be removed in a future release. ' +
171 "It can now be installed and imported from '@react-native-community/picker' instead of 'react-native'. " +
172 'See https://github.com/react-native-community/react-native-picker',
173 );
174 return require('./Libraries/Components/Picker/Picker');
175 },
176 get PickerIOS(): PickerIOS {
177 warnOnce(
178 'pickerios-moved',
179 'PickerIOS has been extracted from react-native core and will be removed in a future release. ' +
180 "It can now be installed and imported from '@react-native-community/picker' instead of 'react-native'. " +
181 'See https://github.com/react-native-community/react-native-picker',
182 );
183 return require('./Libraries/Components/Picker/PickerIOS');
184 },
185 get ProgressBarAndroid(): ProgressBarAndroid {
186 warnOnce(
187 'progress-bar-android-moved',
188 'ProgressBarAndroid has been extracted from react-native core and will be removed in a future release. ' +
189 "It can now be installed and imported from '@react-native-community/progress-bar-android' instead of 'react-native'. " +
190 'See https://github.com/react-native-community/progress-bar-android',
191 );
192 return require('./Libraries/Components/ProgressBarAndroid/ProgressBarAndroid');
193 },
194 get ProgressViewIOS(): ProgressViewIOS {
195 warnOnce(
196 'progress-view-ios-moved',
197 'ProgressViewIOS has been extracted from react-native core and will be removed in a future release. ' +
198 "It can now be installed and imported from '@react-native-community/progress-view' instead of 'react-native'. " +
199 'See https://github.com/react-native-community/progress-view',
200 );
201 return require('./Libraries/Components/ProgressViewIOS/ProgressViewIOS');
202 },
203 get SafeAreaView(): SafeAreaView {
204 return require('./Libraries/Components/SafeAreaView/SafeAreaView');
205 },
206 get ScrollView(): ScrollView {
207 return require('./Libraries/Components/ScrollView/ScrollView');
208 },
209 get SectionList(): SectionList {
210 return require('./Libraries/Lists/SectionList');
211 },
212 get SegmentedControlIOS(): SegmentedControlIOS {
213 warnOnce(
214 'segmented-control-ios-moved',
215 'SegmentedControlIOS has been extracted from react-native core and will be removed in a future release. ' +
216 "It can now be installed and imported from '@react-native-community/segmented-control' instead of 'react-native'. " +
217 'See https://github.com/react-native-community/segmented-control',
218 );
219 return require('./Libraries/Components/SegmentedControlIOS/SegmentedControlIOS');
220 },
221 get Slider(): Slider {
222 warnOnce(
223 'slider-moved',
224 'Slider has been extracted from react-native core and will be removed in a future release. ' +
225 "It can now be installed and imported from '@react-native-community/slider' instead of 'react-native'. " +
226 'See https://github.com/react-native-community/react-native-slider',
227 );
228 return require('./Libraries/Components/Slider/Slider');
229 },
230 get Switch(): Switch {
231 return require('./Libraries/Components/Switch/Switch');
232 },
233 get RefreshControl(): RefreshControl {
234 return require('./Libraries/Components/RefreshControl/RefreshControl');
235 },
236 get StatusBar(): StatusBar {
237 return require('./Libraries/Components/StatusBar/StatusBar');
238 },
239 get Text(): Text {
240 return require('./Libraries/Text/Text');
241 },
242 get TextInput(): TextInput {
243 return require('./Libraries/Components/TextInput/TextInput');
244 },
245 get Touchable(): Touchable {
246 return require('./Libraries/Components/Touchable/Touchable');
247 },
248 get TouchableHighlight(): TouchableHighlight {
249 return require('./Libraries/Components/Touchable/TouchableHighlight');
250 },
251 get TouchableNativeFeedback(): TouchableNativeFeedback {
252 return require('./Libraries/Components/Touchable/TouchableNativeFeedback');
253 },
254 get TouchableOpacity(): TouchableOpacity {
255 return require('./Libraries/Components/Touchable/TouchableOpacity');
256 },
257 get TouchableWithoutFeedback(): TouchableWithoutFeedback {
258 return require('./Libraries/Components/Touchable/TouchableWithoutFeedback');
259 },
260 get View(): View {
261 return require('./Libraries/Components/View/View');
262 },
263 get VirtualizedList(): VirtualizedList {
264 return require('./Libraries/Lists/VirtualizedList');
265 },
266 get VirtualizedSectionList(): VirtualizedSectionList {
267 return require('./Libraries/Lists/VirtualizedSectionList');
268 },
269
270 // APIs
271 get ActionSheetIOS(): ActionSheetIOS {
272 return require('./Libraries/ActionSheetIOS/ActionSheetIOS');
273 },
274 get Alert(): Alert {
275 return require('./Libraries/Alert/Alert');
276 },
277 get Animated(): Animated {
278 return require('./Libraries/Animated/src/Animated');
279 },
280 get Appearance(): Appearance {
281 return require('./Libraries/Utilities/Appearance');
282 },
283 get AppRegistry(): AppRegistry {
284 return require('./Libraries/ReactNative/AppRegistry');
285 },
286 get AppState(): AppState {
287 return require('./Libraries/AppState/AppState');
288 },
289 get AsyncStorage(): AsyncStorage {
290 warnOnce(
291 'async-storage-moved',
292 'AsyncStorage has been extracted from react-native core and will be removed in a future release. ' +
293 "It can now be installed and imported from '@react-native-community/async-storage' instead of 'react-native'. " +
294 'See https://github.com/react-native-community/async-storage',
295 );
296 return require('./Libraries/Storage/AsyncStorage');
297 },
298 get BackHandler(): BackHandler {
299 return require('./Libraries/Utilities/BackHandler');
300 },
301 get Clipboard(): Clipboard {
302 warnOnce(
303 'clipboard-moved',
304 'Clipboard has been extracted from react-native core and will be removed in a future release. ' +
305 "It can now be installed and imported from '@react-native-community/clipboard' instead of 'react-native'. " +
306 'See https://github.com/react-native-community/clipboard',
307 );
308 return require('./Libraries/Components/Clipboard/Clipboard');
309 },
310 get DatePickerAndroid(): DatePickerAndroid {
311 warnOnce(
312 'DatePickerAndroid-merged',
313 'DatePickerAndroid has been merged with DatePickerIOS and will be removed in a future release. ' +
314 "It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. " +
315 'See https://github.com/react-native-community/datetimepicker',
316 );
317 return require('./Libraries/Components/DatePickerAndroid/DatePickerAndroid');
318 },
319 get DeviceInfo(): DeviceInfo {
320 return require('./Libraries/Utilities/DeviceInfo');
321 },
322 get DevSettings(): DevSettings {
323 return require('./Libraries/Utilities/DevSettings');
324 },
325 get Dimensions(): Dimensions {
326 return require('./Libraries/Utilities/Dimensions');
327 },
328 get Easing(): Easing {
329 return require('./Libraries/Animated/src/Easing');
330 },
331 get findNodeHandle(): $PropertyType<ReactNative, 'findNodeHandle'> {
332 return require('./Libraries/Renderer/shims/ReactNative').findNodeHandle;
333 },
334 get I18nManager(): I18nManager {
335 return require('./Libraries/ReactNative/I18nManager');
336 },
337 get ImagePickerIOS(): ImagePickerIOS {
338 warnOnce(
339 'imagePickerIOS-moved',
340 'ImagePickerIOS has been extracted from react-native core and will be removed in a future release. ' +
341 "Please upgrade to use either '@react-native-community/react-native-image-picker' or 'expo-image-picker'. " +
342 "If you cannot upgrade to a different library, please install the deprecated '@react-native-community/image-picker-ios' package. " +
343 'See https://github.com/react-native-community/react-native-image-picker-ios',
344 );
345 return require('./Libraries/Image/ImagePickerIOS');
346 },
347 get InteractionManager(): InteractionManager {
348 return require('./Libraries/Interaction/InteractionManager');
349 },
350 get Keyboard(): Keyboard {
351 return require('./Libraries/Components/Keyboard/Keyboard');
352 },
353 get LayoutAnimation(): LayoutAnimation {
354 return require('./Libraries/LayoutAnimation/LayoutAnimation');
355 },
356 get Linking(): Linking {
357 return require('./Libraries/Linking/Linking');
358 },
359 get NativeDialogManagerAndroid(): NativeDialogManagerAndroid {
360 return require('./Libraries/NativeModules/specs/NativeDialogManagerAndroid')
361 .default;
362 },
363 get NativeEventEmitter(): NativeEventEmitter {
364 return require('./Libraries/EventEmitter/NativeEventEmitter');
365 },
366 get Networking(): Networking {
367 return require('./Libraries/Network/RCTNetworking');
368 },
369 get PanResponder(): PanResponder {
370 return require('./Libraries/Interaction/PanResponder');
371 },
372 get PermissionsAndroid(): PermissionsAndroid {
373 return require('./Libraries/PermissionsAndroid/PermissionsAndroid');
374 },
375 get PixelRatio(): PixelRatio {
376 return require('./Libraries/Utilities/PixelRatio');
377 },
378 get PushNotificationIOS(): PushNotificationIOS {
379 warnOnce(
380 'pushNotificationIOS-moved',
381 'PushNotificationIOS has been extracted from react-native core and will be removed in a future release. ' +
382 "It can now be installed and imported from '@react-native-community/push-notification-ios' instead of 'react-native'. " +
383 'See https://github.com/react-native-community/push-notification-ios',
384 );
385 return require('./Libraries/PushNotificationIOS/PushNotificationIOS');
386 },
387 get Settings(): Settings {
388 return require('./Libraries/Settings/Settings');
389 },
390 get Share(): Share {
391 return require('./Libraries/Share/Share');
392 },
393 get StatusBarIOS(): StatusBarIOS {
394 warnOnce(
395 'StatusBarIOS-merged',
396 'StatusBarIOS has been merged with StatusBar and will be removed in a future release. Use StatusBar for mutating the status bar',
397 );
398 return require('./Libraries/Components/StatusBar/StatusBarIOS');
399 },
400 get StyleSheet(): StyleSheet {
401 return require('./Libraries/StyleSheet/StyleSheet');
402 },
403 get Systrace(): Systrace {
404 return require('./Libraries/Performance/Systrace');
405 },
406 get ToastAndroid(): ToastAndroid {
407 return require('./Libraries/Components/ToastAndroid/ToastAndroid');
408 },
409 get TurboModuleRegistry(): TurboModuleRegistry {
410 return require('./Libraries/TurboModule/TurboModuleRegistry');
411 },
412 get TVEventHandler(): TVEventHandler {
413 return require('./Libraries/Components/AppleTV/TVEventHandler');
414 },
415 get UIManager(): UIManager {
416 return require('./Libraries/ReactNative/UIManager');
417 },
418 get unstable_batchedUpdates(): $PropertyType<
419 ReactNative,
420 'unstable_batchedUpdates',
421 > {
422 return require('./Libraries/Renderer/shims/ReactNative')
423 .unstable_batchedUpdates;
424 },
425 get useColorScheme(): useColorScheme {
426 return require('./Libraries/Utilities/useColorScheme').default;
427 },
428 get useWindowDimensions(): useWindowDimensions {
429 return require('./Libraries/Utilities/useWindowDimensions').default;
430 },
431 get UTFSequence(): UTFSequence {
432 return require('./Libraries/UTFSequence');
433 },
434 get Vibration(): Vibration {
435 return require('./Libraries/Vibration/Vibration');
436 },
437 get YellowBox(): YellowBox {
438 return require('./Libraries/YellowBox/YellowBox');
439 },
440
441 // Plugins
442 get DeviceEventEmitter(): RCTDeviceEventEmitter {
443 return require('./Libraries/EventEmitter/RCTDeviceEventEmitter');
444 },
445 get NativeAppEventEmitter(): RCTNativeAppEventEmitter {
446 return require('./Libraries/EventEmitter/RCTNativeAppEventEmitter');
447 },
448 get NativeModules(): NativeModules {
449 return require('./Libraries/BatchedBridge/NativeModules');
450 },
451 get Platform(): Platform {
452 return require('./Libraries/Utilities/Platform');
453 },
454 get processColor(): processColor {
455 return require('./Libraries/StyleSheet/processColor');
456 },
457 get requireNativeComponent(): <T>(
458 uiViewClassName: string,
459 ) => HostComponent<T> {
460 return require('./Libraries/ReactNative/requireNativeComponent');
461 },
462 get unstable_RootTagContext(): RootTagContext {
463 return require('./Libraries/ReactNative/RootTagContext');
464 },
465 get unstable_enableLogBox(): () => void {
466 return require('./Libraries/YellowBox/YellowBox').__unstable_enableLogBox;
467 },
468
469 // Prop Types
470 get ColorPropType(): DeprecatedColorPropType {
471 return require('./Libraries/DeprecatedPropTypes/DeprecatedColorPropType');
472 },
473 get EdgeInsetsPropType(): DeprecatedEdgeInsetsPropType {
474 return require('./Libraries/DeprecatedPropTypes/DeprecatedEdgeInsetsPropType');
475 },
476 get PointPropType(): DeprecatedPointPropType {
477 return require('./Libraries/DeprecatedPropTypes/DeprecatedPointPropType');
478 },
479 get ViewPropTypes(): DeprecatedViewPropTypes {
480 return require('./Libraries/DeprecatedPropTypes/DeprecatedViewPropTypes');
481 },
482};
483
484if (__DEV__) {
485 // $FlowFixMe This is intentional: Flow will error when attempting to access ART.
486 Object.defineProperty(module.exports, 'ART', {
487 configurable: true,
488 get() {
489 invariant(
490 false,
491 'ART has been removed from React Native. ' +
492 "It can now be installed and imported from '@react-native-community/art' instead of 'react-native'. " +
493 'See https://github.com/react-native-community/art',
494 );
495 },
496 });
497
498 // $FlowFixMe This is intentional: Flow will error when attempting to access ListView.
499 Object.defineProperty(module.exports, 'ListView', {
500 configurable: true,
501 get() {
502 invariant(
503 false,
504 'ListView has been removed from React Native. ' +
505 'See https://fb.me/nolistview for more information or use ' +
506 '`deprecated-react-native-listview`.',
507 );
508 },
509 });
510
511 // $FlowFixMe This is intentional: Flow will error when attempting to access SwipeableListView.
512 Object.defineProperty(module.exports, 'SwipeableListView', {
513 configurable: true,
514 get() {
515 invariant(
516 false,
517 'SwipeableListView has been removed from React Native. ' +
518 'See https://fb.me/nolistview for more information or use ' +
519 '`deprecated-react-native-swipeable-listview`.',
520 );
521 },
522 });
523
524 // $FlowFixMe This is intentional: Flow will error when attempting to access WebView.
525 Object.defineProperty(module.exports, 'WebView', {
526 configurable: true,
527 get() {
528 invariant(
529 false,
530 'WebView has been removed from React Native. ' +
531 "It can now be installed and imported from 'react-native-webview' instead of 'react-native'. " +
532 'See https://github.com/react-native-community/react-native-webview',
533 );
534 },
535 });
536
537 // $FlowFixMe This is intentional: Flow will error when attempting to access NetInfo.
538 Object.defineProperty(module.exports, 'NetInfo', {
539 configurable: true,
540 get() {
541 invariant(
542 false,
543 'NetInfo has been removed from React Native. ' +
544 "It can now be installed and imported from '@react-native-community/netinfo' instead of 'react-native'. " +
545 'See https://github.com/react-native-community/react-native-netinfo',
546 );
547 },
548 });
549
550 // $FlowFixMe This is intentional: Flow will error when attempting to access CameraRoll.
551 Object.defineProperty(module.exports, 'CameraRoll', {
552 configurable: true,
553 get() {
554 invariant(
555 false,
556 'CameraRoll has been removed from React Native. ' +
557 "It can now be installed and imported from '@react-native-community/cameraroll' instead of 'react-native'. " +
558 'See https://github.com/react-native-community/react-native-cameraroll',
559 );
560 },
561 });
562
563 // $FlowFixMe This is intentional: Flow will error when attempting to access ImageStore.
564 Object.defineProperty(module.exports, 'ImageStore', {
565 configurable: true,
566 get() {
567 invariant(
568 false,
569 'ImageStore has been removed from React Native. ' +
570 'To get a base64-encoded string from a local image use either of the following third-party libraries:' +
571 "* expo-file-system: `readAsStringAsync(filepath, 'base64')`" +
572 "* react-native-fs: `readFile(filepath, 'base64')`",
573 );
574 },
575 });
576
577 // $FlowFixMe This is intentional: Flow will error when attempting to access ImageEditor.
578 Object.defineProperty(module.exports, 'ImageEditor', {
579 configurable: true,
580 get() {
581 invariant(
582 false,
583 'ImageEditor has been removed from React Native. ' +
584 "It can now be installed and imported from '@react-native-community/image-editor' instead of 'react-native'. " +
585 'See https://github.com/react-native-community/react-native-image-editor',
586 );
587 },
588 });
589
590 // $FlowFixMe This is intentional: Flow will error when attempting to access TimePickerAndroid.
591 Object.defineProperty(module.exports, 'TimePickerAndroid', {
592 configurable: true,
593 get() {
594 invariant(
595 false,
596 'TimePickerAndroid has been removed from React Native. ' +
597 "It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. " +
598 'See https://github.com/react-native-community/datetimepicker',
599 );
600 },
601 });
602
603 // $FlowFixMe This is intentional: Flow will error when attempting to access ViewPagerAndroid.
604 Object.defineProperty(module.exports, 'ViewPagerAndroid', {
605 configurable: true,
606 get() {
607 invariant(
608 false,
609 'ViewPagerAndroid has been removed from React Native. ' +
610 "It can now be installed and imported from '@react-native-community/viewpager' instead of 'react-native'. " +
611 'See https://github.com/react-native-community/react-native-viewpager',
612 );
613 },
614 });
615}