import React, {SyntheticEvent, useCallback, useEffect, useState} from "react"; import {sayHello} from "../api/greetings"; import Button from "./Button"; import Input from "./Input"; import Link from "./Link"; import CosmosGreetings from "./CosmosGreetings"; import {defaultNetworkContext, NetworkContext, useNetworkContext, useValidation} from "../hooks/context"; import {formatCoin} from "../utils"; const networkContext = React.createContext(defaultNetworkContext); export const HelloCosmos: React.FC<{}> = () => { const [message, setMessage] = useState(""); const [networkContextValue, connectKeplr] = useNetworkContext(); const {placeholder, isSubmitDisabled, isInputDisabled} = useValidation(networkContextValue); const {wallet, cwClient, balance} = networkContextValue; // TODO: refactor const _sayHello = useCallback(async () => { // TODO: confirmation if (typeof wallet === "undefined") { return; } await sayHello(wallet, cwClient, message); }, [wallet, cwClient, message]) const _setMessage = useCallback((event: SyntheticEvent): void => { // @ts-ignore setMessage(event.target.value); }, [setMessage]); const faucetInfo =
Use the testnet faucet to get tokens.
Address: {wallet.address}
Balance: {formatCoin(balance)}
return
Welcome! Say,
"Hello Cosmos"
Nice one, you've generated a react dApp!

Write a message to let the cosmos know how easy it was to set up. Greetings are stored in a smart contract on Fetch.ai testnet (Dorado) which is queried to populate the messages below.

Read what other users have to say about their experience!

Tip the author of your favorite message by clicking on it. (Tips are quite generous, half testnet balance)

{wallet.connected && } {!wallet.connected && }
{wallet.connected && faucetInfo}
};