import { NewAppScreen } from '@react-native/new-app-screen' import { useEffect, useState } from 'react' import { StatusBar, Text, StyleSheet, useColorScheme, ScrollView, Button, Alert } from 'react-native' import { NativeEventEmitter, NativeModules } from 'react-native' const { Emitter, TestingServiceModule } = NativeModules import { requireNativeComponent } from 'react-native' import type { StyleProp, ViewStyle } from 'react-native' type CustomButtonProps = { style?: StyleProp } const CustomButton = requireNativeComponent('CustomButton') const BaseButton = requireNativeComponent('BaseButton') export default function App() { const isDarkMode = useColorScheme() === 'dark' const [message, setMessage] = useState(null) const [color, setColor] = useState("#FFF") const onPress = async () => { if (!TestingServiceModule?.greet) { Alert.alert('Module not found', 'MyNativeModule is not linked or not exported.') return } try { const result = await TestingServiceModule.greet('John') setMessage(result); } catch (error) { console.error(error) } } useEffect(() => { const emitter = new NativeEventEmitter(Emitter); const subscription = emitter.addListener('onMessage', (event) => { if (event?.message) { setMessage(event.message) if (event?.message == "hello from Swift!") { setColor("#00F") } } }) return () => { subscription.remove() }; }, []) return ( {message ?? 'Waiting for message...'}