diff --git a/packages/react-native/Libraries/Utilities/BackHandler.android.js b/packages/react-native/Libraries/Utilities/BackHandler.android.js index fedc3aeb4a3..14fb436c8c4 100644 --- a/packages/react-native/Libraries/Utilities/BackHandler.android.js +++ b/packages/react-native/Libraries/Utilities/BackHandler.android.js @@ -14,12 +14,13 @@ import RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter'; const DEVICE_BACK_EVENT = 'hardwareBackPress'; type BackPressEventName = 'backPress' | 'hardwareBackPress'; +type BackPressHandler = () => ?boolean; -const _backPressSubscriptions = []; +const _backPressSubscriptions: Array = []; RCTDeviceEventEmitter.addListener(DEVICE_BACK_EVENT, function () { for (let i = _backPressSubscriptions.length - 1; i >= 0; i--) { - if (_backPressSubscriptions[i] && _backPressSubscriptions[i]()) { + if (_backPressSubscriptions[i]?.()) { return; } } @@ -57,7 +58,7 @@ type TBackHandler = {| +exitApp: () => void, +addEventListener: ( eventName: BackPressEventName, - handler: () => ?boolean, + handler: BackPressHandler, ) => {remove: () => void, ...}, |}; const BackHandler: TBackHandler = { @@ -76,7 +77,7 @@ const BackHandler: TBackHandler = { */ addEventListener: function ( eventName: BackPressEventName, - handler: () => ?boolean, + handler: BackPressHandler, ): {remove: () => void, ...} { if (_backPressSubscriptions.indexOf(handler) === -1) { _backPressSubscriptions.push(handler); diff --git a/packages/react-native/Libraries/Utilities/BackHandler.ios.js b/packages/react-native/Libraries/Utilities/BackHandler.ios.js index f024cdb9d35..bc4cf85c634 100644 --- a/packages/react-native/Libraries/Utilities/BackHandler.ios.js +++ b/packages/react-native/Libraries/Utilities/BackHandler.ios.js @@ -4,13 +4,12 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * + * @flow strict-local * @format - * @flow */ -'use strict'; - type BackPressEventName = 'backPress' | 'hardwareBackPress'; +type BackPressHandler = () => ?boolean; function emptyFunction(): void {} @@ -18,13 +17,13 @@ type TBackHandler = {| +exitApp: () => void, +addEventListener: ( eventName: BackPressEventName, - handler: () => ?boolean, + handler: BackPressHandler, ) => {remove: () => void, ...}, |}; let BackHandler: TBackHandler = { exitApp: emptyFunction, - addEventListener(_eventName: BackPressEventName, _handler: Function) { + addEventListener(_eventName: BackPressEventName, _handler: BackPressHandler) { return { remove: emptyFunction, };