/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow * @format */ 'use strict'; const requireNativeComponent = require('requireNativeComponent'); import type {ViewProps} from 'ViewPropTypes'; import type {SyntheticEvent} from 'CoreEventTypes'; import type {NativeComponent} from 'ReactNative'; type Event = SyntheticEvent< $ReadOnly<{| value: number, selectedSegmentIndex: number, |}>, >; type SegmentedControlIOSProps = $ReadOnly<{| ...ViewProps, /** * The labels for the control's segment buttons, in order. */ values?: $ReadOnlyArray, /** * The index in `props.values` of the segment to be (pre)selected. */ selectedIndex?: ?number, /** * Callback that is called when the user taps a segment; * passes the segment's value as an argument */ onValueChange?: ?(value: number) => mixed, /** * Callback that is called when the user taps a segment; * passes the event as an argument */ onChange?: ?(event: Event) => mixed, /** * If false the user won't be able to interact with the control. * Default value is true. */ enabled?: boolean, /** * Accent color of the control. */ tintColor?: ?string, /** * If true, then selecting a segment won't persist visually. * The `onValueChange` callback will still work as expected. */ momentary?: ?boolean, |}>; type NativeSegmentedControlIOS = Class< NativeComponent, >; module.exports = ((requireNativeComponent( 'RCTSegmentedControl', ): any): NativeSegmentedControlIOS);