import {UIManager} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';
const {setIsJSResponder} = nativeFabricUIManager;
const ReactFabricGlobalResponderHandler = {
onChange: function(from: any, to: any, blockNativeResponder: boolean) {
const fromOrTo = from || to;
const fromOrToStateNode = fromOrTo && fromOrTo.stateNode;
const isFabric = !!(
fromOrToStateNode && fromOrToStateNode.canonical._internalInstanceHandle
);
if (isFabric) {
if (from) {
setIsJSResponder(
from.stateNode.node,
false,
blockNativeResponder || false,
);
}
if (to) {
setIsJSResponder(
to.stateNode.node,
true,
blockNativeResponder || false,
);
}
} else {
if (to !== null) {
const tag = to.stateNode.canonical._nativeTag;
UIManager.setJSResponder(tag, blockNativeResponder);
} else {
UIManager.clearJSResponder();
}
}
},
};
export default ReactFabricGlobalResponderHandler;