import React from "react"; import { Block } from "@/components/Block"; import { Subtitle } from "@/components/Subtitle"; import { Status } from "@/components/Status"; import { Button } from "@/components/Button"; import { useStore, useWaku } from "@/hooks"; import { MessageContent } from "@/services/waku"; export const Waku: React.FunctionComponent<{}> = () => { const { wakuStatus } = useStore(); const { onSend, messages } = useWaku(); const { nick, text, onNickChange, onMessageChange, resetText } = useMessage(); const onSendClick = async () => { await onSend(nick, text); resetText(); }; const renderedMessages = React.useMemo( () => messages.map(renderMessage), [messages] ); return ( Waku(select credentials to initialize) Your nickname Message Send Messages {renderedMessages} ); }; function useMessage() { const [nick, setNick] = React.useState(""); const [text, setText] = React.useState(""); const onNickChange = (e: React.SyntheticEvent) => { setNick(e.currentTarget.value || ""); }; const onMessageChange = (e: React.SyntheticEvent) => { setText(e.currentTarget.value || ""); }; const resetText = () => { setText(""); }; return { nick, text, resetText, onNickChange, onMessageChange, }; } function renderMessage(content: MessageContent) { return ( {content.nick} ({content.proofStatus}, {content.time}) : {content.text} ); }
(select credentials to initialize)
Messages
{content.nick} ({content.proofStatus}, {content.time}) :
{content.text}