Improve typing of BackHandler (#48411)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/48411

## Changelog:
[Internal] -

Floow-up to https://github.com/facebook/react-native/pull/48388, based on the diff discussion (D67648077).

Adds a bit better typing to `BackHandler.js`.

Reviewed By: blakef

Differential Revision: D67713236

fbshipit-source-id: 95435898d8ea87f6ae32a6db859d6641e1264972
This commit is contained in:
Ruslan Shestopalyuk
2024-12-30 06:17:39 -08:00
committed by Facebook GitHub Bot
parent 85bdd75828
commit dd1cfb70e9
2 changed files with 9 additions and 9 deletions
@@ -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<BackPressHandler> = [];
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);
@@ -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,
};