diff --git a/android/app/src/main/java/com/trust/ywx/MainApplication.kt b/android/app/src/main/java/com/trust/ywx/MainApplication.kt index ef11c75..0606264 100644 --- a/android/app/src/main/java/com/trust/ywx/MainApplication.kt +++ b/android/app/src/main/java/com/trust/ywx/MainApplication.kt @@ -9,6 +9,7 @@ import com.facebook.react.ReactNativeHost import com.facebook.react.ReactPackage import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost +import com.trust.ywx.specs.navigation.NavigationPackage class MainApplication : Application(), ReactApplication { @@ -17,7 +18,7 @@ class MainApplication : Application(), ReactApplication { override fun getPackages(): List = PackageList(this).packages.apply { // Packages that cannot be autolinked yet can be added manually here, for example: - // add(MyReactNativePackage()) + add(NavigationPackage()) } override fun getJSMainModuleName(): String = "index" diff --git a/android/app/src/main/java/com/trust/ywx/specs/NavigationManager.kt b/android/app/src/main/java/com/trust/ywx/specs/navigation/NavigationManager.kt similarity index 79% rename from android/app/src/main/java/com/trust/ywx/specs/NavigationManager.kt rename to android/app/src/main/java/com/trust/ywx/specs/navigation/NavigationManager.kt index e9c017b..dde878f 100644 --- a/android/app/src/main/java/com/trust/ywx/specs/NavigationManager.kt +++ b/android/app/src/main/java/com/trust/ywx/specs/navigation/NavigationManager.kt @@ -1,12 +1,10 @@ -package com.trust.ywx.specs - +package com.trust.ywx.specs.navigation import android.content.Intent import com.facebook.react.bridge.ReactApplicationContext import com.trust.ywx.AppManager import com.trust.ywx.BuzActivity import com.trust.ywx.specs.NativeNavigationManagerSpec -import com.trust.ywx.specs.navigation.NavigationHelper class NavigationManager(reactContext: ReactApplicationContext) : NativeNavigationManagerSpec(reactContext) { @@ -20,4 +18,8 @@ class NavigationManager(reactContext: ReactApplicationContext) : } + override fun getName() = NAME + companion object { + const val NAME = "NavigationManager" + } } \ No newline at end of file diff --git a/android/app/src/main/java/com/trust/ywx/specs/navigation/NavigationPackage.kt b/android/app/src/main/java/com/trust/ywx/specs/navigation/NavigationPackage.kt new file mode 100644 index 0000000..f9a2fcb --- /dev/null +++ b/android/app/src/main/java/com/trust/ywx/specs/navigation/NavigationPackage.kt @@ -0,0 +1,31 @@ +package com.trust.ywx.specs.navigation + +import com.facebook.react.BaseReactPackage +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.model.ReactModuleInfo +import com.facebook.react.module.model.ReactModuleInfoProvider + +class NavigationPackage : BaseReactPackage() { + override fun getModule( + name: String, + reactContext: ReactApplicationContext + ): NativeModule? = if (name == NavigationManager.NAME) { + NavigationManager(reactContext) + } else { + null + } + + override fun getReactModuleInfoProvider() = ReactModuleInfoProvider { + mapOf( + NavigationManager.NAME to ReactModuleInfo( + name = NavigationManager.NAME, + className = NavigationManager.NAME, + canOverrideExistingModule = false, + needsEagerInit = false, + isCxxModule = false, + isTurboModule = true + ) + ) + } +} \ No newline at end of file diff --git a/babel.config.js b/babel.config.js index f7b3da3..989aa34 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,3 +1,18 @@ module.exports = { presets: ['module:@react-native/babel-preset'], + plugins: [ + [ + 'module-resolver', + { + root: ['.'], + alias: { + '@': './src', + '@ywx': './src/ywq', + '@app': './src/app', + '@hospital': './src/hospital', + '@common': './src/common', + }, + }, + ], + ], }; diff --git a/package.json b/package.json index be774f2..b24c4a2 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "dependencies": { "@react-native-async-storage/async-storage": "^2.2.0", "@react-native/new-app-screen": "0.80.1", + "babel-plugin-module-resolver": "^5.0.2", "react": "19.1.0", "react-native": "0.80.1", "react-native-storage": "^1.0.1" diff --git a/src/app/App.tsx b/src/app/App.tsx index 90e549b..2a8b827 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -12,7 +12,7 @@ import { useColorScheme, View, } from 'react-native'; -import { pushByName } from '../common/NavigationHelper.ts'; +import * as navigation from '@common/NavigationHelper.ts'; function App() { const isDarkMode = useColorScheme() === 'dark'; @@ -24,7 +24,8 @@ function App() {