import { AppRegistry } from 'react-native'; import { moduleNameMap, initialPropsMap } from '../global'; import getPageStack from '../reactNavigation/getPageStack'; export default function injectAppRegistry() { AppRegistry.runApplication = new Proxy(AppRegistry.runApplication, { apply: (target, thisArgument, argumentsList) => { const appKey = argumentsList[0]; const appParams = argumentsList[1]; try { moduleNameMap.set(appParams.rootTag, appKey); initialPropsMap.set(appParams.rootTag, appParams.initialProps); } catch (e: any) { console.warn(e.message); } return Reflect.apply(target, thisArgument, argumentsList); }, }); AppRegistry.unmountApplicationComponentAtRootTag = new Proxy( AppRegistry.unmountApplicationComponentAtRootTag, { apply: (target, thisArgument, argumentsList) => { const rootTag = argumentsList[0]; try { moduleNameMap.delete(rootTag); getPageStack(rootTag).clear(); } catch (e: any) { console.warn(e.message); } return Reflect.apply(target, thisArgument, argumentsList); }, } ); }