diff --git a/Libraries/Components/CheckBox/AndroidCheckBoxNativeComponent.js b/Libraries/Components/CheckBox/AndroidCheckBoxNativeComponent.js new file mode 100644 index 000000000..14c84b069 --- /dev/null +++ b/Libraries/Components/CheckBox/AndroidCheckBoxNativeComponent.js @@ -0,0 +1,51 @@ +/** + * 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 CheckBoxEvent = SyntheticEvent< + $ReadOnly<{| + target: number, + value: boolean, + |}>, +>; + +type NativeProps = $ReadOnly<{| + ...ViewProps, + + /** + * Used in case the props change removes the component. + */ + onChange?: ?(event: CheckBoxEvent) => mixed, + + /** + * Invoked with the new value when the value changes. + */ + onValueChange?: ?(value: boolean) => mixed, + + /** + * Used to locate this view in end-to-end tests. + */ + testID?: ?string, + + on?: ?boolean, + enabled?: boolean, +|}>; + +type CheckBoxNativeType = Class>; + +module.exports = ((requireNativeComponent( + 'AndroidCheckBox', +): any): CheckBoxNativeType); diff --git a/Libraries/Components/CheckBox/CheckBox.android.js b/Libraries/Components/CheckBox/CheckBox.android.js index b8a7d3d76..e288562a0 100644 --- a/Libraries/Components/CheckBox/CheckBox.android.js +++ b/Libraries/Components/CheckBox/CheckBox.android.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @flow + * @flow strict-local * @format */ 'use strict'; @@ -12,7 +12,7 @@ const React = require('React'); const StyleSheet = require('StyleSheet'); -const requireNativeComponent = require('requireNativeComponent'); +const AndroidCheckBoxNativeComponent = require('AndroidCheckBoxNativeComponent'); const nullthrows = require('nullthrows'); const setAndForwardRef = require('setAndForwardRef'); @@ -76,10 +76,6 @@ type Props = $ReadOnly<{| forwardedRef?: ?React.Ref, |}>; -const RCTCheckBox = ((requireNativeComponent( - 'AndroidCheckBox', -): any): CheckBoxNativeType); - /** * Renders a boolean input (Android only). * @@ -169,7 +165,7 @@ class CheckBox extends React.Component { }; return ( -