From eb171d272d938f9b46fbc682496abac59bcdf677 Mon Sep 17 00:00:00 2001 From: nd-02110114 Date: Wed, 16 Jan 2019 12:31:10 -0800 Subject: [PATCH] AndroidCheckBox (#23003) Summary: This PR is related to #22990 Changelog: ---------- [Android][Changed] - move the call to requireNativeComponent from `Checkbox.android.js` to `AndroidCheckBoxNativeComponent.js` Pull Request resolved: https://github.com/facebook/react-native/pull/23003 Reviewed By: TheSavior Differential Revision: D13690827 Pulled By: rickhanlonii fbshipit-source-id: 08bc83a7f097414b5c833a3b43715e5aec277d65 --- .../AndroidCheckBoxNativeComponent.js | 51 +++++++++++++++++++ .../Components/CheckBox/CheckBox.android.js | 10 ++-- 2 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 Libraries/Components/CheckBox/AndroidCheckBoxNativeComponent.js 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 ( -