@berty/weshnet-expo
v1.0.2
Published
Wesh Network React Native Expo module
Downloads
33
Readme
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
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.