mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
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:
committed by
Facebook GitHub Bot
parent
85bdd75828
commit
dd1cfb70e9
@@ -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,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user