1.0.2 • Published 9 months ago

@berty/weshnet-expo v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

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-expo

Usage

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 --clean

Example App

cd example
make build.ios # or make build.android

Contributing

Contribute to Berty

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.

1.0.2

9 months ago

1.0.1

9 months ago

0.0.2

2 years ago

0.0.1

2 years ago