• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

facebook / react-native / af585971-f736-432c-90fc-8c3de5e01da3

pending completion
af585971-f736-432c-90fc-8c3de5e01da3

push

CircleCI

Facebook GitHub Bot
ESM ActivityIndicator

3633 of 26411 branches covered (13.76%)

Branch coverage included in aggregate %.

2 of 2 new or added lines in 1 file covered. (100.0%)

7424 of 44591 relevant lines covered (16.65%)

241.33 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.33
/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js
1
/**
2
 * Copyright (c) Meta Platforms, Inc. and 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
 * @flow strict-local
8
 * @format
9
 */
10

11
import type {
12
  HostComponent,
13
  PartialViewConfig,
14
} from '../../Renderer/shims/ReactNativeTypes';
15
import type {
16
  ColorValue,
17
  TextStyleProp,
18
  ViewStyleProp,
19
} from '../../StyleSheet/StyleSheet';
20
import type {
21
  BubblingEventHandler,
22
  DirectEventHandler,
23
  Double,
24
  Float,
25
  Int32,
26
  WithDefault,
27
} from '../../Types/CodegenTypes';
28
import type {ViewProps} from '../View/ViewPropTypes';
29
import type {TextInputNativeCommands} from './TextInputNativeCommands';
30

31
import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';
19✔
32
import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
551✔
33

34
export type KeyboardType =
35
  // Cross Platform
36
  | 'default'
37
  | 'email-address'
38
  | 'numeric'
39
  | 'phone-pad'
40
  | 'number-pad'
41
  | 'decimal-pad'
42
  | 'url'
43
  // iOS-only
44
  | 'ascii-capable'
45
  | 'numbers-and-punctuation'
46
  | 'name-phone-pad'
47
  | 'twitter'
48
  | 'web-search'
49
  // Android-only
50
  | 'visible-password';
51

52
export type ReturnKeyType =
53
  // Cross Platform
54
  | 'done'
55
  | 'go'
56
  | 'next'
57
  | 'search'
58
  | 'send'
59
  // Android-only
60
  | 'none'
61
  | 'previous'
62
  // iOS-only
63
  | 'default'
64
  | 'emergency-call'
65
  | 'google'
66
  | 'join'
67
  | 'route'
68
  | 'yahoo';
69

70
export type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';
71

72
export type NativeProps = $ReadOnly<{|
73
  // This allows us to inherit everything from ViewProps except for style (see below)
74
  // This must be commented for Fabric codegen to work.
75
  ...$Diff<ViewProps, $ReadOnly<{|style: ?ViewStyleProp|}>>,
76

77
  /**
78
   * Android props after this
79
   */
80
  /**
81
   * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
82
   * To disable autocomplete, set `autoComplete` to `off`.
83
   *
84
   * *Android Only*
85
   *
86
   * Possible values for `autoComplete` are:
87
   *
88
   * - `birthdate-day`
89
   * - `birthdate-full`
90
   * - `birthdate-month`
91
   * - `birthdate-year`
92
   * - `cc-csc`
93
   * - `cc-exp`
94
   * - `cc-exp-day`
95
   * - `cc-exp-month`
96
   * - `cc-exp-year`
97
   * - `cc-number`
98
   * - `email`
99
   * - `gender`
100
   * - `name`
101
   * - `name-family`
102
   * - `name-given`
103
   * - `name-middle`
104
   * - `name-middle-initial`
105
   * - `name-prefix`
106
   * - `name-suffix`
107
   * - `password`
108
   * - `password-new`
109
   * - `postal-address`
110
   * - `postal-address-country`
111
   * - `postal-address-extended`
112
   * - `postal-address-extended-postal-code`
113
   * - `postal-address-locality`
114
   * - `postal-address-region`
115
   * - `postal-code`
116
   * - `street-address`
117
   * - `sms-otp`
118
   * - `tel`
119
   * - `tel-country-code`
120
   * - `tel-national`
121
   * - `tel-device`
122
   * - `username`
123
   * - `username-new`
124
   * - `off`
125
   *
126
   * @platform android
127
   */
128
  autoComplete?: WithDefault<
129
    | 'birthdate-day'
130
    | 'birthdate-full'
131
    | 'birthdate-month'
132
    | 'birthdate-year'
133
    | 'cc-csc'
134
    | 'cc-exp'
135
    | 'cc-exp-day'
136
    | 'cc-exp-month'
137
    | 'cc-exp-year'
138
    | 'cc-number'
139
    | 'email'
140
    | 'gender'
141
    | 'name'
142
    | 'name-family'
143
    | 'name-given'
144
    | 'name-middle'
145
    | 'name-middle-initial'
146
    | 'name-prefix'
147
    | 'name-suffix'
148
    | 'password'
149
    | 'password-new'
150
    | 'postal-address'
151
    | 'postal-address-country'
152
    | 'postal-address-extended'
153
    | 'postal-address-extended-postal-code'
154
    | 'postal-address-locality'
155
    | 'postal-address-region'
156
    | 'postal-code'
157
    | 'street-address'
158
    | 'sms-otp'
159
    | 'tel'
160
    | 'tel-country-code'
161
    | 'tel-national'
162
    | 'tel-device'
163
    | 'username'
164
    | 'username-new'
165
    | 'off',
166
    'off',
167
  >,
168

169
  /**
170
   * Sets the return key to the label. Use it instead of `returnKeyType`.
171
   * @platform android
172
   */
173
  returnKeyLabel?: ?string,
174

175
  /**
176
   * Sets the number of lines for a `TextInput`. Use it with multiline set to
177
   * `true` to be able to fill the lines.
178
   * @platform android
179
   */
180
  numberOfLines?: ?Int32,
181

182
  /**
183
   * When `false`, if there is a small amount of space available around a text input
184
   * (e.g. landscape orientation on a phone), the OS may choose to have the user edit
185
   * the text inside of a full screen text input mode. When `true`, this feature is
186
   * disabled and users will always edit the text directly inside of the text input.
187
   * Defaults to `false`.
188
   * @platform android
189
   */
190
  disableFullscreenUI?: ?boolean,
191

192
  /**
193
   * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`
194
   * The default value is `simple`.
195
   * @platform android
196
   */
197
  textBreakStrategy?: WithDefault<
198
    'simple' | 'highQuality' | 'balanced',
199
    'simple',
200
  >,
201

202
  /**
203
   * The color of the `TextInput` underline.
204
   * @platform android
205
   */
206
  underlineColorAndroid?: ?ColorValue,
207

208
  /**
209
   * If defined, the provided image resource will be rendered on the left.
210
   * The image resource must be inside `/android/app/src/main/res/drawable` and referenced
211
   * like
212
   * ```
213
   * <TextInput
214
   *  inlineImageLeft='search_icon'
215
   * />
216
   * ```
217
   * @platform android
218
   */
219
  inlineImageLeft?: ?string,
220

221
  /**
222
   * Padding between the inline image, if any, and the text input itself.
223
   * @platform android
224
   */
225
  inlineImagePadding?: ?Int32,
226

227
  importantForAutofill?: string /*?(
228
    | 'auto'
229
    | 'no'
230
    | 'noExcludeDescendants'
231
    | 'yes'
232
    | 'yesExcludeDescendants'
233
  ),*/,
234

235
  /**
236
   * When `false`, it will prevent the soft keyboard from showing when the field is focused.
237
   * Defaults to `true`.
238
   */
239
  showSoftInputOnFocus?: ?boolean,
240

241
  /**
242
   * TextInput props after this
243
   */
244
  /**
245
   * Can tell `TextInput` to automatically capitalize certain characters.
246
   *
247
   * - `characters`: all characters.
248
   * - `words`: first letter of each word.
249
   * - `sentences`: first letter of each sentence (*default*).
250
   * - `none`: don't auto capitalize anything.
251
   */
252
  autoCapitalize?: WithDefault<
253
    'none' | 'sentences' | 'words' | 'characters',
254
    'none',
255
  >,
256

257
  /**
258
   * If `false`, disables auto-correct. The default value is `true`.
259
   */
260
  autoCorrect?: ?boolean,
261

262
  /**
263
   * If `true`, focuses the input on `componentDidMount`.
264
   * The default value is `false`.
265
   */
266
  autoFocus?: ?boolean,
267

268
  /**
269
   * Specifies whether fonts should scale to respect Text Size accessibility settings. The
270
   * default is `true`.
271
   */
272
  allowFontScaling?: ?boolean,
273

274
  /**
275
   * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.
276
   * Possible values:
277
   * `null/undefined` (default): inherit from the parent node or the global default (0)
278
   * `0`: no max, ignore parent/global default
279
   * `>= 1`: sets the maxFontSizeMultiplier of this node to this value
280
   */
281
  maxFontSizeMultiplier?: ?Float,
282

283
  /**
284
   * If `false`, text is not editable. The default value is `true`.
285
   */
286
  editable?: ?boolean,
287

288
  /**
289
   * Determines which keyboard to open, e.g.`numeric`.
290
   *
291
   * The following values work across platforms:
292
   *
293
   * - `default`
294
   * - `numeric`
295
   * - `number-pad`
296
   * - `decimal-pad`
297
   * - `email-address`
298
   * - `phone-pad`
299
   * - `url`
300
   *
301
   * *Android Only*
302
   *
303
   * The following values work on Android only:
304
   *
305
   * - `visible-password`
306
   */
307
  keyboardType?: WithDefault<KeyboardType, 'default'>,
308

309
  /**
310
   * Determines how the return key should look. On Android you can also use
311
   * `returnKeyLabel`.
312
   *
313
   * *Cross platform*
314
   *
315
   * The following values work across platforms:
316
   *
317
   * - `done`
318
   * - `go`
319
   * - `next`
320
   * - `search`
321
   * - `send`
322
   *
323
   * *Android Only*
324
   *
325
   * The following values work on Android only:
326
   *
327
   * - `none`
328
   * - `previous`
329
   */
330
  returnKeyType?: WithDefault<ReturnKeyType, 'done'>,
331

332
  /**
333
   * Limits the maximum number of characters that can be entered. Use this
334
   * instead of implementing the logic in JS to avoid flicker.
335
   */
336
  maxLength?: ?Int32,
337

338
  /**
339
   * If `true`, the text input can be multiple lines.
340
   * The default value is `false`.
341
   */
342
  multiline?: ?boolean,
343

344
  /**
345
   * Callback that is called when the text input is blurred.
346
   * `target` is the reactTag of the element
347
   */
348
  onBlur?: ?BubblingEventHandler<$ReadOnly<{|target: Int32|}>>,
349

350
  /**
351
   * Callback that is called when the text input is focused.
352
   * `target` is the reactTag of the element
353
   */
354
  onFocus?: ?BubblingEventHandler<$ReadOnly<{|target: Int32|}>>,
355

356
  /**
357
   * Callback that is called when the text input's text changes.
358
   * `target` is the reactTag of the element
359
   * TODO: differentiate between onChange and onChangeText
360
   */
361
  onChange?: ?BubblingEventHandler<
362
    $ReadOnly<{|target: Int32, eventCount: Int32, text: string|}>,
363
  >,
364

365
  /**
366
   * Callback that is called when the text input's text changes.
367
   * Changed text is passed as an argument to the callback handler.
368
   * TODO: differentiate between onChange and onChangeText
369
   */
370
  onChangeText?: ?BubblingEventHandler<
371
    $ReadOnly<{|target: Int32, eventCount: Int32, text: string|}>,
372
  >,
373

374
  /**
375
   * Callback that is called when the text input's content size changes.
376
   * This will be called with
377
   * `{ nativeEvent: { contentSize: { width, height } } }`.
378
   *
379
   * Only called for multiline text inputs.
380
   */
381
  onContentSizeChange?: ?DirectEventHandler<
382
    $ReadOnly<{|
383
      target: Int32,
384
      contentSize: $ReadOnly<{|width: Double, height: Double|}>,
385
    |}>,
386
  >,
387

388
  onTextInput?: ?BubblingEventHandler<
389
    $ReadOnly<{|
390
      target: Int32,
391
      text: string,
392
      previousText: string,
393
      range: $ReadOnly<{|start: Double, end: Double|}>,
394
    |}>,
395
  >,
396

397
  /**
398
   * Callback that is called when text input ends.
399
   */
400
  onEndEditing?: ?BubblingEventHandler<
401
    $ReadOnly<{|target: Int32, text: string|}>,
402
  >,
403

404
  /**
405
   * Callback that is called when the text input selection is changed.
406
   * This will be called with
407
   * `{ nativeEvent: { selection: { start, end } } }`.
408
   */
409
  onSelectionChange?: ?DirectEventHandler<
410
    $ReadOnly<{|
411
      target: Int32,
412
      selection: $ReadOnly<{|start: Double, end: Double|}>,
413
    |}>,
414
  >,
415

416
  /**
417
   * Callback that is called when the text input's submit button is pressed.
418
   * Invalid if `multiline={true}` is specified.
419
   */
420
  onSubmitEditing?: ?BubblingEventHandler<
421
    $ReadOnly<{|target: Int32, text: string|}>,
422
  >,
423

424
  /**
425
   * Callback that is called when a key is pressed.
426
   * This will be called with `{ nativeEvent: { key: keyValue } }`
427
   * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and
428
   * the typed-in character otherwise including `' '` for space.
429
   * Fires before `onChange` callbacks.
430
   */
431
  onKeyPress?: ?BubblingEventHandler<$ReadOnly<{|target: Int32, key: string|}>>,
432

433
  /**
434
   * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.
435
   * May also contain other properties from ScrollEvent but on Android contentSize
436
   * is not provided for performance reasons.
437
   */
438
  onScroll?: ?DirectEventHandler<
439
    $ReadOnly<{|
440
      target: Int32,
441
      responderIgnoreScroll: boolean,
442
      contentInset: $ReadOnly<{|
443
        top: Double, // always 0 on Android
444
        bottom: Double, // always 0 on Android
445
        left: Double, // always 0 on Android
446
        right: Double, // always 0 on Android
447
      |}>,
448
      contentOffset: $ReadOnly<{|
449
        x: Double,
450
        y: Double,
451
      |}>,
452
      contentSize: $ReadOnly<{|
453
        width: Double, // always 0 on Android
454
        height: Double, // always 0 on Android
455
      |}>,
456
      layoutMeasurement: $ReadOnly<{|
457
        width: Double,
458
        height: Double,
459
      |}>,
460
      velocity: $ReadOnly<{|
461
        x: Double, // always 0 on Android
462
        y: Double, // always 0 on Android
463
      |}>,
464
    |}>,
465
  >,
466

467
  /**
468
   * The string that will be rendered before text input has been entered.
469
   */
470
  placeholder?: ?Stringish,
471

472
  /**
473
   * The text color of the placeholder string.
474
   */
475
  placeholderTextColor?: ?ColorValue,
476

477
  /**
478
   * If `true`, the text input obscures the text entered so that sensitive text
479
   * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.
480
   */
481
  secureTextEntry?: ?boolean,
482

483
  /**
484
   * The highlight and cursor color of the text input.
485
   */
486
  selectionColor?: ?ColorValue,
487

488
  /**
489
   * The start and end of the text input's selection. Set start and end to
490
   * the same value to position the cursor.
491
   */
492
  selection?: ?$ReadOnly<{|
493
    start: Int32,
494
    end?: ?Int32,
495
  |}>,
496

497
  /**
498
   * The value to show for the text input. `TextInput` is a controlled
499
   * component, which means the native value will be forced to match this
500
   * value prop if provided. For most uses, this works great, but in some
501
   * cases this may cause flickering - one common cause is preventing edits
502
   * by keeping value the same. In addition to simply setting the same value,
503
   * either set `editable={false}`, or set/update `maxLength` to prevent
504
   * unwanted edits without flicker.
505
   */
506
  value?: ?string,
507

508
  /**
509
   * Provides an initial value that will change when the user starts typing.
510
   * Useful for simple use-cases where you do not want to deal with listening
511
   * to events and updating the value prop to keep the controlled state in sync.
512
   */
513
  defaultValue?: ?string,
514

515
  /**
516
   * If `true`, all text will automatically be selected on focus.
517
   */
518
  selectTextOnFocus?: ?boolean,
519

520
  /**
521
   * If `true`, the text field will blur when submitted.
522
   * The default value is true for single-line fields and false for
523
   * multiline fields. Note that for multiline fields, setting `blurOnSubmit`
524
   * to `true` means that pressing return will blur the field and trigger the
525
   * `onSubmitEditing` event instead of inserting a newline into the field.
526
   *
527
   * @deprecated
528
   * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will
529
   * override any behavior defined by `blurOnSubmit`.
530
   * @see submitBehavior
531
   */
532
  blurOnSubmit?: ?boolean,
533

534
  /**
535
   * When the return key is pressed,
536
   *
537
   * For single line inputs:
538
   *
539
   * - `'newline`' defaults to `'blurAndSubmit'`
540
   * - `undefined` defaults to `'blurAndSubmit'`
541
   *
542
   * For multiline inputs:
543
   *
544
   * - `'newline'` adds a newline
545
   * - `undefined` defaults to `'newline'`
546
   *
547
   * For both single line and multiline inputs:
548
   *
549
   * - `'submit'` will only send a submit event and not blur the input
550
   * - `'blurAndSubmit`' will both blur the input and send a submit event
551
   */
552
  submitBehavior?: ?SubmitBehavior,
553

554
  /**
555
   * Note that not all Text styles are supported, an incomplete list of what is not supported includes:
556
   *
557
   * - `borderLeftWidth`
558
   * - `borderTopWidth`
559
   * - `borderRightWidth`
560
   * - `borderBottomWidth`
561
   * - `borderTopLeftRadius`
562
   * - `borderTopRightRadius`
563
   * - `borderBottomRightRadius`
564
   * - `borderBottomLeftRadius`
565
   *
566
   * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)
567
   * for more detail.
568
   *
569
   * [Styles](docs/style.html)
570
   */
571
  // TODO: figure out what to do with this style prop for codegen/Fabric purposes
572
  // This must be commented for Fabric codegen to work; it's currently not possible
573
  // to override the default View style prop in codegen.
574
  style?: ?TextStyleProp,
575

576
  /**
577
   * If `true`, caret is hidden. The default value is `false`.
578
   * This property is supported only for single-line TextInput component on iOS.
579
   */
580
  caretHidden?: ?boolean,
581

582
  /*
583
   * If `true`, contextMenuHidden is hidden. The default value is `false`.
584
   */
585
  contextMenuHidden?: ?boolean,
586

587
  /**
588
   * The following are props that `BaseTextShadowNode` takes. It is unclear if they
589
   * are used by TextInput.
590
   */
591
  textShadowColor?: ?ColorValue,
592
  textShadowRadius?: ?Float,
593
  textDecorationLine?: ?string,
594
  fontStyle?: ?string,
595
  textShadowOffset?: ?$ReadOnly<{|width?: ?Double, height?: ?Double|}>,
596
  lineHeight?: ?Float,
597
  textTransform?: ?string,
598
  color?: ?Int32,
599
  letterSpacing?: ?Float,
600
  fontSize?: ?Float,
601
  textAlign?: ?string,
602
  includeFontPadding?: ?boolean,
603
  fontWeight?: ?string,
604
  fontFamily?: ?string,
605

606
  /**
607
   * I cannot find where these are defined but JS complains without them.
608
   */
609
  textAlignVertical?: ?string,
610
  cursorColor?: ?ColorValue,
611

612
  /**
613
   * "Private" fields used by TextInput.js and not users of this component directly
614
   */
615
  mostRecentEventCount: Int32,
616
  text?: ?string,
617
|}>;
618

619
type NativeType = HostComponent<NativeProps>;
620

621
type NativeCommands = TextInputNativeCommands<NativeType>;
622

623
export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
19✔
624
  supportedCommands: ['focus', 'blur', 'setTextAndSelection'],
625
});
19✔
626

627
export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
19✔
628
  uiViewClassName: 'AndroidTextInput',
629
  bubblingEventTypes: {
630
    topBlur: {
631
      phasedRegistrationNames: {
632
        bubbled: 'onBlur',
633
        captured: 'onBlurCapture',
634
      },
635
    },
636
    topEndEditing: {
637
      phasedRegistrationNames: {
638
        bubbled: 'onEndEditing',
639
        captured: 'onEndEditingCapture',
640
      },
641
    },
642
    topFocus: {
643
      phasedRegistrationNames: {
644
        bubbled: 'onFocus',
645
        captured: 'onFocusCapture',
646
      },
647
    },
648
    topKeyPress: {
649
      phasedRegistrationNames: {
650
        bubbled: 'onKeyPress',
651
        captured: 'onKeyPressCapture',
652
      },
653
    },
654
    topSubmitEditing: {
655
      phasedRegistrationNames: {
656
        bubbled: 'onSubmitEditing',
657
        captured: 'onSubmitEditingCapture',
658
      },
659
    },
660
    topTextInput: {
661
      phasedRegistrationNames: {
662
        bubbled: 'onTextInput',
663
        captured: 'onTextInputCapture',
664
      },
665
    },
666
  },
667
  directEventTypes: {
668
    topScroll: {
669
      registrationName: 'onScroll',
670
    },
671
  },
672
  validAttributes: {
673
    maxFontSizeMultiplier: true,
674
    adjustsFontSizeToFit: true,
675
    minimumFontScale: true,
676
    autoFocus: true,
677
    placeholder: true,
678
    inlineImagePadding: true,
679
    contextMenuHidden: true,
680
    textShadowColor: {
681
      process: require('../../StyleSheet/processColor').default,
682
    },
683
    maxLength: true,
684
    selectTextOnFocus: true,
685
    textShadowRadius: true,
686
    underlineColorAndroid: {
687
      process: require('../../StyleSheet/processColor').default,
688
    },
689
    textDecorationLine: true,
690
    submitBehavior: true,
691
    textAlignVertical: true,
692
    fontStyle: true,
693
    textShadowOffset: true,
694
    selectionColor: {process: require('../../StyleSheet/processColor').default},
695
    selection: true,
696
    placeholderTextColor: {
697
      process: require('../../StyleSheet/processColor').default,
698
    },
699
    importantForAutofill: true,
700
    lineHeight: true,
701
    textTransform: true,
702
    returnKeyType: true,
703
    keyboardType: true,
704
    multiline: true,
705
    color: {process: require('../../StyleSheet/processColor').default},
706
    autoComplete: true,
707
    numberOfLines: true,
708
    letterSpacing: true,
709
    returnKeyLabel: true,
710
    fontSize: true,
711
    onKeyPress: true,
712
    cursorColor: {process: require('../../StyleSheet/processColor').default},
713
    text: true,
714
    showSoftInputOnFocus: true,
715
    textAlign: true,
716
    autoCapitalize: true,
717
    autoCorrect: true,
718
    caretHidden: true,
719
    secureTextEntry: true,
720
    textBreakStrategy: true,
721
    onScroll: true,
722
    onContentSizeChange: true,
723
    disableFullscreenUI: true,
724
    includeFontPadding: true,
725
    fontWeight: true,
726
    fontFamily: true,
727
    allowFontScaling: true,
728
    onSelectionChange: true,
729
    mostRecentEventCount: true,
730
    inlineImageLeft: true,
731
    editable: true,
732
    fontVariant: true,
733
    borderBottomRightRadius: true,
734
    borderBottomColor: {
735
      process: require('../../StyleSheet/processColor').default,
736
    },
737
    borderRadius: true,
738
    borderRightColor: {
739
      process: require('../../StyleSheet/processColor').default,
740
    },
741
    borderColor: {process: require('../../StyleSheet/processColor').default},
742
    borderTopRightRadius: true,
743
    borderStyle: true,
744
    borderBottomLeftRadius: true,
745
    borderLeftColor: {
746
      process: require('../../StyleSheet/processColor').default,
747
    },
748
    borderTopLeftRadius: true,
749
    borderTopColor: {process: require('../../StyleSheet/processColor').default},
750
  },
751
};
19✔
752

753
let AndroidTextInputNativeComponent = NativeComponentRegistry.get<NativeProps>(
19✔
754
  'AndroidTextInput',
755
  () => __INTERNAL_VIEW_CONFIG,
×
756
);
757

758
// flowlint-next-line unclear-type:off
759
export default ((AndroidTextInputNativeComponent: any): HostComponent<NativeProps>);
19✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc