import React from 'react'; import { Button, Card, CardHeader, CardBody, FormGroup, Form, Input, InputGroup, Row, Col, Container, Table } from 'reactstrap'; class App extends React.Component { constructor() { super(); this.handleChangeReceiver = this.handleChangeReceiver.bind(this); this.handleChangeMessage = this.handleChangeMessage.bind(this); this.receivedMessage = this.receivedMessage.bind(this); this.state = { nymClient: null, sender: "", receiver: "", message: "Hello mixnet!", transfers: [], } } componentDidMount() { this.loadWasm(); } handleChangeReceiver(e) { this.setState({ receiver: e.target.value }); } handleChangeMessage(e) { this.setState({ message: e.target.value }); } loadWasm = async () => { try { const wasm = await import('@nymproject/nym-client-wasm'); this.setState({ wasm }); // Set up identity and client let validator = "http://testnet-validator1.nymtech.net:8081"; let _nymClient = new wasm.NymClient(validator); _nymClient.set_on_message(this.receivedMessage); // Start the Nym client. Connects to a Nym gateway via websocket. _nymClient = await _nymClient.initial_setup(); this.setState({ nymClient: _nymClient }); let _sender = _nymClient.self_address(); this.setState({ sender: _sender }); } catch (err) { console.error(`Unexpected error in loadWasm. [Message: ${err.message}]`); } } async sendmessage(message, receiver) { let timestamp = new Date().toISOString().substr(11, 12); this.setState({ nymClient: await this.state.nymClient.send_message(message, receiver), transfers: this.state.transfers.concat({ time: timestamp, direction: "sent", message: message, replySURB: "N/A" }) }) } receivedMessage(message) { let timestamp = new Date().toISOString().substr(11, 12); this.setState({ transfers: this.state.transfers.concat({ time: timestamp, direction: "received", message: message.message, replySURB: "" + (message.replySURB != null) }) }) } renderTableData() { return this.state.transfers.map((transfers, index) => { const { time, direction, message, replySURB } = transfers //destructuring return (
Example react peaps implementation
| Time | In/Out | Message | ReplySURB |
|---|