diff --git a/Libraries/Components/ToastAndroid/NativeToastAndroid.js b/Libraries/Components/ToastAndroid/NativeToastAndroid.js new file mode 100644 index 00000000000..89e74438740 --- /dev/null +++ b/Libraries/Components/ToastAndroid/NativeToastAndroid.js @@ -0,0 +1,39 @@ +/** + * 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'; + +import type {TurboModule} from 'RCTExport'; +import * as TurboModuleRegistry from 'TurboModuleRegistry'; + +export interface Spec extends TurboModule { + +getConstants: () => {| + SHORT: number, + LONG: number, + TOP: number, + BOTTOM: number, + CENTER: number, + |}; + +show: (message: string, duration: number) => void; + +showWithGravity: ( + message: string, + duration: number, + gravity: number, + ) => void; + +showWithGravityAndOffset: ( + message: string, + duration: number, + gravity: number, + xOffset: number, + yOffset: number, + ) => void; +} + +export default TurboModuleRegistry.getEnforcing('ToastAndroid'); diff --git a/Libraries/Components/ToastAndroid/ToastAndroid.android.js b/Libraries/Components/ToastAndroid/ToastAndroid.android.js index 30207d30a9c..ff1db3cf90b 100644 --- a/Libraries/Components/ToastAndroid/ToastAndroid.android.js +++ b/Libraries/Components/ToastAndroid/ToastAndroid.android.js @@ -9,9 +9,7 @@ */ 'use strict'; - -const RCTToastAndroid = require('../../BatchedBridge/NativeModules') - .ToastAndroid; +import NativeToastAndroid from './NativeToastAndroid'; /** * This exposes the native ToastAndroid module as a JS module. This has a function 'show' @@ -36,16 +34,15 @@ const RCTToastAndroid = require('../../BatchedBridge/NativeModules') const ToastAndroid = { // Toast duration constants - SHORT: RCTToastAndroid.SHORT, - LONG: RCTToastAndroid.LONG, - + SHORT: NativeToastAndroid.getConstants().SHORT, + LONG: NativeToastAndroid.getConstants().LONG, // Toast gravity constants - TOP: RCTToastAndroid.TOP, - BOTTOM: RCTToastAndroid.BOTTOM, - CENTER: RCTToastAndroid.CENTER, + TOP: NativeToastAndroid.getConstants().TOP, + BOTTOM: NativeToastAndroid.getConstants().BOTTOM, + CENTER: NativeToastAndroid.getConstants().CENTER, show: function(message: string, duration: number): void { - RCTToastAndroid.show(message, duration); + NativeToastAndroid.show(message, duration); }, showWithGravity: function( @@ -53,7 +50,7 @@ const ToastAndroid = { duration: number, gravity: number, ): void { - RCTToastAndroid.showWithGravity(message, duration, gravity); + NativeToastAndroid.showWithGravity(message, duration, gravity); }, showWithGravityAndOffset: function( @@ -63,7 +60,7 @@ const ToastAndroid = { xOffset: number, yOffset: number, ): void { - RCTToastAndroid.showWithGravityAndOffset( + NativeToastAndroid.showWithGravityAndOffset( message, duration, gravity, diff --git a/Libraries/Components/ToastAndroid/ToastAndroid.ios.js b/Libraries/Components/ToastAndroid/ToastAndroid.ios.js index ed5fcf02f40..d0528ff65dc 100644 --- a/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +++ b/Libraries/Components/ToastAndroid/ToastAndroid.ios.js @@ -16,6 +16,24 @@ const ToastAndroid = { show: function(message: string, duration: number): void { warning(false, 'ToastAndroid is not supported on this platform.'); }, + + showWithGravity: function( + message: string, + duration: number, + gravity: number, + ): void { + warning(false, 'ToastAndroid is not supported on this platform.'); + }, + + showWithGravityAndOffset: function( + message: string, + duration: number, + gravity: number, + xOffset: number, + yOffset: number, + ): void { + warning(false, 'ToastAndroid is not supported on this platform.'); + }, }; module.exports = ToastAndroid;