diff --git a/packages/react-native/Libraries/Components/Button.js b/packages/react-native/Libraries/Components/Button.js index 8ed215d6a6cb..383f769a4018 100644 --- a/packages/react-native/Libraries/Components/Button.js +++ b/packages/react-native/Libraries/Components/Button.js @@ -30,132 +30,124 @@ import * as React from 'react'; /** @build-types emit-as-interface Uniwind compatibility */ export type ButtonProps = Readonly<{ /** - Text to display inside the button. On Android the given title will be - converted to the uppercased form. + * Text to display inside the button. On Android the given title will be + * converted to the uppercased form. */ title: string, /** - Handler to be called when the user taps the button. The first function - argument is an event in form of [GestureResponderEvent](pressevent). + * Handler called when the user taps the button. */ onPress?: (event?: GestureResponderEvent) => unknown, /** - If `true`, doesn't play system sound on touch. - - @platform android - - @default false + * If `true`, doesn't play system sound on touch. + * + * @platform android + * + * @default `false` */ touchSoundDisabled?: ?boolean, /** - Color of the text (iOS), or background color of the button (Android). - - @default {@platform android} '#2196F3' - @default {@platform ios} '#007AFF' + * Color of the text (iOS), or background color of the button (Android). + * + * @default {@platform android} `'#2196F3'` + * @default {@platform ios} `'#007AFF'` */ color?: ?ColorValue, /** - TV preferred focus. - - @platform tv - - @default false - @deprecated Use `focusable` instead + * TV preferred focus. + * + * @platform tv + * + * @default `false` + * @deprecated Use `focusable` instead */ hasTVPreferredFocus?: ?boolean, /** - Designates the next view to receive focus when the user navigates down. See - the [Android documentation][android:nextFocusDown]. - - [android:nextFocusDown]: - https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusDown - - @platform android, tv + * Designates the next view to receive focus when the user navigates down. See + * the [Android documentation][android:nextFocusDown]. + * + * [android:nextFocusDown]: + * https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusDown + * + * @platform android, tv */ nextFocusDown?: ?number, /** - Designates the next view to receive focus when the user navigates forward. - See the [Android documentation][android:nextFocusForward]. - - [android:nextFocusForward]: - https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusForward - - @platform android, tv + * Designates the next view to receive focus when the user navigates forward. + * See the [Android documentation][android:nextFocusForward]. + * + * [android:nextFocusForward]: + * https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusForward + * + * @platform android, tv */ nextFocusForward?: ?number, /** - Designates the next view to receive focus when the user navigates left. See - the [Android documentation][android:nextFocusLeft]. - - [android:nextFocusLeft]: - https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusLeft - - @platform android, tv + * Designates the next view to receive focus when the user navigates left. See + * the [Android documentation][android:nextFocusLeft]. + * + * [android:nextFocusLeft]: + * https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusLeft + * + * @platform android, tv */ nextFocusLeft?: ?number, /** - Designates the next view to receive focus when the user navigates right. See - the [Android documentation][android:nextFocusRight]. - - [android:nextFocusRight]: - https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusRight - - @platform android, tv + * Designates the next view to receive focus when the user navigates right. See + * the [Android documentation][android:nextFocusRight]. + * + * [android:nextFocusRight]: + * https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusRight + * + * @platform android, tv */ nextFocusRight?: ?number, /** - Designates the next view to receive focus when the user navigates up. See - the [Android documentation][android:nextFocusUp]. - - [android:nextFocusUp]: - https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusUp - - @platform android, tv + * Designates the next view to receive focus when the user navigates up. See + * the [Android documentation][android:nextFocusUp]. + * + * [android:nextFocusUp]: + * https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusUp + * + * @platform android, tv */ nextFocusUp?: ?number, /** - Text to display for blindness accessibility features. + * Text to display for blindness accessibility features. */ accessibilityLabel?: ?string, + /** - * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel - * https://github.com/facebook/react-native/issues/34424 + * Alias for `accessibilityLabel`. */ 'aria-label'?: ?string, - /** - If `true`, disable all interactions for this component. - @default false + /** + * If `true`, disable all interactions for this component. + * + * @default `false` */ disabled?: ?boolean, - /** - Used to locate this view in end-to-end tests. - */ testID?: ?string, - /** - * Accessibility props. - */ accessible?: ?boolean, accessibilityActions?: ?ReadonlyArray, onAccessibilityAction?: ?(event: AccessibilityActionEvent) => unknown, accessibilityState?: ?AccessibilityState, /** - * alias for accessibilityState - * - * see https://reactnative.dev/docs/accessibility#accessibilitystate + * Alias for `accessibilityState`. */ 'aria-busy'?: ?boolean, 'aria-checked'?: ?boolean | 'mixed', @@ -163,122 +155,18 @@ export type ButtonProps = Readonly<{ 'aria-expanded'?: ?boolean, 'aria-selected'?: ?boolean, - /** - * [Android] Controlling if a view fires accessibility events and if it is reported to accessibility services. - */ importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'), accessibilityHint?: ?string, + + /** + * A BCP 47 language tag for the screen reader to use when reading text + * content. + * + * @platform ios + */ accessibilityLanguage?: ?Stringish, }>; -/** - A basic button component that should render nicely on any platform. Supports a - minimal level of customization. - - If this button doesn't look right for your app, you can build your own button - using [TouchableOpacity](touchableopacity) or - [TouchableWithoutFeedback](touchablewithoutfeedback). For inspiration, look at - the [source code for this button component][button:source]. Or, take a look at - the [wide variety of button components built by the community] - [button:examples]. - - [button:source]: - https://github.com/facebook/react-native/blob/HEAD/Libraries/Components/Button.js - - ```jsx -