@told.club/sdk-rn
Version:
Told React Native SDK
23 lines (21 loc) • 1.24 kB
JavaScript
// @ts-nocheck
import React, { useEffect } from 'react';
import { useSafeNavigation } from './hooks/useSafeNavigation';
export default function NavigationListener({
children,
onScreenChange
}) {
const navigation = useSafeNavigation();
useEffect(() => {
var _navigation$addListen;
if (!navigation) return;
const unsubscribe = navigation === null || navigation === void 0 || (_navigation$addListen = navigation.addListener) === null || _navigation$addListen === void 0 ? void 0 : _navigation$addListen.call(navigation, 'state', () => {
var _navigation$getCurren;
const currentScreenName = navigation === null || navigation === void 0 || (_navigation$getCurren = navigation.getCurrentRoute) === null || _navigation$getCurren === void 0 || (_navigation$getCurren = _navigation$getCurren.call(navigation)) === null || _navigation$getCurren === void 0 ? void 0 : _navigation$getCurren.name;
onScreenChange === null || onScreenChange === void 0 || onScreenChange(currentScreenName);
});
return unsubscribe;
}, [navigation]); // eslint-disable-line react-hooks/exhaustive-deps
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
}
//# sourceMappingURL=NavigationListener.js.map