@berty/weshnet-expo v1.0.3
Requirements
- Go = 1.22.4
 
Follow the React Native requirements and Expo requirements for your platform.
Instalation
Install the package in your project:
# create new expo project
npx create-expo-app my-app --template expo-template-blank-typescript
cd my-app
npx expo install @berty/weshnet-expoUsage
Add the following to your App.tsx:
import React, { useState, useEffect } from "react";
import { StyleSheet, Text, View } from "react-native";
import * as WeshnetExpo from "@berty/weshnet-expo";
export default function App() {
    const [peerID, setPeerID] = useState<string>();
    useEffect(() => {
        WeshnetExpo.init().then((client) => {
            client.serviceGetConfiguration({}).then((res) => {
                setPeerID(res.peerId);
                console.log(res);
            });
        });
    }, []);
    const loadingView = <Text> Loading Weshnet... </Text>;
    const weshView = <Text>hello my peerid is: {peerID}</Text>;
    return (
        <View style={styles.container}>{!peerID ? loadingView : weshView}</View>
    );
    const styles = StyleSheet.create({
        container: {
            flex: 1,
            backgroundColor: "#fff",
            alignItems: "center",
            justifyContent: "center",
        },
    });
}weshnet needs some system permissions to get the phone's connectivity status and make mDNS working. Edit your app.json to include the following permissions:
{
    "expo": {
        "android": {
            "permissions": [
                "android.permission.READ_PHONE_STATE",
                "android.permission.ACCESS_NETWORK_STATE",
                "android.permission.CHANGE_WIFI_MULTICAST_STATE"
            ]
        }
    }
}You need to update your native Android / iOS folders. If you have a managed workflow (learn more here), do the following (this command will delete and recreate the native folders!!!)
npx expo prebuild --cleanExample App
cd example
make build.ios # or make build.androidContributing
If you want to help out, please see docs/developer-guide.md and CONTRIBUTING.md.
This repository falls under the Berty Code of Conduct.
You can contact us on the #questions-❓ channel on discord.
License
Dual-licensed under Apache 2.0 and MIT terms.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
See the COPYRIGHT file for more details.
