/** * Sample React Native App * https://github.com/facebook/react-native * * Generated with the TypeScript template * https://github.com/react-native-community/react-native-template-typescript * * @format */ import React from 'react'; import { SafeAreaView, ScrollView, StatusBar, StyleSheet, Text, useColorScheme, View, } from 'react-native'; import { Colors, DebugInstructions, Header, LearnMoreLinks, ReloadInstructions, } from 'react-native/Libraries/NewAppScreen'; import { Waku } from 'js-waku'; const Section: React.FC<{ title: string; }> = ({children, title}) => { const isDarkMode = useColorScheme() === 'dark'; return ( {title} {children} ); }; const App = () => { const [waku, setWaku] = React.useState(undefined); const [wakuStatus, setWakuStatus] = React.useState('None'); // Start Waku React.useEffect(() => { // If Waku is already assigned, the job is done if (!!waku) return; // If Waku status not None, it means we are already starting Waku if (wakuStatus !== 'None') return; setWakuStatus('Starting'); // Create Waku Waku.create({ bootstrap: { default: true } }).then(waku => { // Once done, put it in the state setWaku(waku); // And update the status setWakuStatus('Started'); }); }, [waku, wakuStatus]); const isDarkMode = useColorScheme() === 'dark'; const backgroundStyle = { backgroundColor: isDarkMode ? Colors.darker : Colors.lighter, }; return (
{wakuStatus}
); }; const styles = StyleSheet.create({ sectionContainer: { marginTop: 32, paddingHorizontal: 24, }, sectionTitle: { fontSize: 24, fontWeight: '600', }, sectionDescription: { marginTop: 8, fontSize: 18, fontWeight: '400', }, highlight: { fontWeight: '700', }, }); export default App;