From a7781c81f4354756192a9f6887de3bf7bfcc4447 Mon Sep 17 00:00:00 2001 From: wojteg1337 Date: Thu, 16 May 2019 11:31:32 +0200 Subject: [PATCH 1/3] [TM] Add spec for AndroidToast --- .../ToastAndroid/NativeToastAndroid.js | 44 +++++++++++++++++++ .../ToastAndroid/ToastAndroid.android.js | 20 ++++----- 2 files changed, 53 insertions(+), 11 deletions(-) create mode 100644 Libraries/Components/ToastAndroid/NativeToastAndroid.js diff --git a/Libraries/Components/ToastAndroid/NativeToastAndroid.js b/Libraries/Components/ToastAndroid/NativeToastAndroid.js new file mode 100644 index 000000000000..52cc8326b277 --- /dev/null +++ b/Libraries/Components/ToastAndroid/NativeToastAndroid.js @@ -0,0 +1,44 @@ +/** + * 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; + + // RCTEventEmitter + +addListener: (eventName: string) => void; + +removeListeners: (count: number) => void; +} + +export default TurboModuleRegistry.getEnforcing('ToastAndroid'); diff --git a/Libraries/Components/ToastAndroid/ToastAndroid.android.js b/Libraries/Components/ToastAndroid/ToastAndroid.android.js index 30207d30a9ce..4db35f0d2015 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,16 @@ 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 +51,7 @@ const ToastAndroid = { duration: number, gravity: number, ): void { - RCTToastAndroid.showWithGravity(message, duration, gravity); + NativeToastAndroid.showWithGravity(message, duration, gravity); }, showWithGravityAndOffset: function( @@ -63,7 +61,7 @@ const ToastAndroid = { xOffset: number, yOffset: number, ): void { - RCTToastAndroid.showWithGravityAndOffset( + NativeToastAndroid.showWithGravityAndOffset( message, duration, gravity, From ee7ff2edb5be4e101a42bc71ce531761a83b74b5 Mon Sep 17 00:00:00 2001 From: Wojteg1337 Date: Fri, 17 May 2019 10:39:21 +0200 Subject: [PATCH 2/3] fix: conditional imoport, remove event emitter types --- Libraries/Components/ToastAndroid/NativeToastAndroid.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Libraries/Components/ToastAndroid/NativeToastAndroid.js b/Libraries/Components/ToastAndroid/NativeToastAndroid.js index 52cc8326b277..ae27d9fafcbf 100644 --- a/Libraries/Components/ToastAndroid/NativeToastAndroid.js +++ b/Libraries/Components/ToastAndroid/NativeToastAndroid.js @@ -12,6 +12,7 @@ import type {TurboModule} from 'RCTExport'; import * as TurboModuleRegistry from 'TurboModuleRegistry'; +import {Platform} from 'react-native'; export interface Spec extends TurboModule { +getConstants: () => {| @@ -35,10 +36,8 @@ export interface Spec extends TurboModule { xOffset: number, yOffset: number, ) => void; - - // RCTEventEmitter - +addListener: (eventName: string) => void; - +removeListeners: (count: number) => void; } -export default TurboModuleRegistry.getEnforcing('ToastAndroid'); +export default (Platform.OS === 'android' + ? TurboModuleRegistry.getEnforcing('ToastAndroid') + : null); From 1ae6d1696389f01f6271962c22554514315dbef9 Mon Sep 17 00:00:00 2001 From: Wojteg1337 Date: Mon, 20 May 2019 11:42:37 +0200 Subject: [PATCH 3/3] fix: flow errors --- .../ToastAndroid/NativeToastAndroid.js | 5 +---- .../ToastAndroid/ToastAndroid.android.js | 1 - .../ToastAndroid/ToastAndroid.ios.js | 18 ++++++++++++++++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Libraries/Components/ToastAndroid/NativeToastAndroid.js b/Libraries/Components/ToastAndroid/NativeToastAndroid.js index ae27d9fafcbf..76ec41f07f6a 100644 --- a/Libraries/Components/ToastAndroid/NativeToastAndroid.js +++ b/Libraries/Components/ToastAndroid/NativeToastAndroid.js @@ -12,7 +12,6 @@ import type {TurboModule} from 'RCTExport'; import * as TurboModuleRegistry from 'TurboModuleRegistry'; -import {Platform} from 'react-native'; export interface Spec extends TurboModule { +getConstants: () => {| @@ -38,6 +37,4 @@ export interface Spec extends TurboModule { ) => void; } -export default (Platform.OS === 'android' - ? TurboModuleRegistry.getEnforcing('ToastAndroid') - : null); +export default TurboModuleRegistry.getEnforcing('ToastAndroid'); diff --git a/Libraries/Components/ToastAndroid/ToastAndroid.android.js b/Libraries/Components/ToastAndroid/ToastAndroid.android.js index 4db35f0d2015..ff1db3cf90bf 100644 --- a/Libraries/Components/ToastAndroid/ToastAndroid.android.js +++ b/Libraries/Components/ToastAndroid/ToastAndroid.android.js @@ -36,7 +36,6 @@ const ToastAndroid = { // Toast duration constants SHORT: NativeToastAndroid.getConstants().SHORT, LONG: NativeToastAndroid.getConstants().LONG, - // Toast gravity constants TOP: NativeToastAndroid.getConstants().TOP, BOTTOM: NativeToastAndroid.getConstants().BOTTOM, diff --git a/Libraries/Components/ToastAndroid/ToastAndroid.ios.js b/Libraries/Components/ToastAndroid/ToastAndroid.ios.js index ed5fcf02f401..d0528ff65dc3 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;