import { byProps } from '@revenge-mod/modules/finders/filters' import { waitForModules } from '@revenge-mod/modules/finders/wait' import type { Metro } from '@revenge-mod/modules/types' export let ReactModuleId: Metro.ModuleID export let ReactNativeModuleId: Metro.ModuleID export let ReactJsxRuntimeModuleId: Metro.ModuleID export let React: typeof import('react') export let ReactNative: typeof import('react-native') export let ReactJsxRuntime: typeof import('react/jsx-runtime') let RtCount = 0 const unsubRt = waitForModules(byProps('useState'), (exports, id) => { if (RtCount++ === 2) return unsubRt() ReactModuleId = id React = exports }) const unsubRN = waitForModules(byProps('AppRegistry'), (exports, id) => { unsubRN() ReactNativeModuleId = id ReactNative = exports }) let RJsxRCount = 0 const unsubRJsxR = waitForModules(byProps('jsxs'), (exports, id) => { if (RJsxRCount++ === 2) return unsubRJsxR() ReactJsxRuntimeModuleId = id ReactJsxRuntime = exports })