From 24da4003a5bdf17f821f04397346a4ec4956774a Mon Sep 17 00:00:00 2001 From: Benjamin Wenger <ben@elixxir.ioo> Date: Wed, 17 Mar 2021 16:51:09 -0700 Subject: [PATCH] got it working --- go.mod | 1 + main.go | 62 +++++++++++++++++++++++++++++++++++++++++---------------- 2 files changed, 46 insertions(+), 17 deletions(-) diff --git a/go.mod b/go.mod index 1b72a4c..bc0904d 100644 --- a/go.mod +++ b/go.mod @@ -9,4 +9,5 @@ require ( github.com/ugorji/go v1.1.4 // indirect github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 // indirect gitlab.com/elixxir/client v1.5.1-0.20210317220715-139e06c28b9b + gitlab.com/xx_network/primitives v0.0.4-0.20210309173740-eb8cd411334a ) diff --git a/main.go b/main.go index b8ba89b..92be6ee 100644 --- a/main.go +++ b/main.go @@ -42,13 +42,18 @@ func main() { div.AddElement(sendText.Element) // add a button - btn := bootstrap.NewButton(bootstrap.ButtonPrimary, "Send") + btn := bootstrap.NewButton(bootstrap.ButtonPrimary, "Send over xx") + rtnDiv := bootstrap.NewElement("div", "well") + rtnRow := bootstrap.NewRow(bootstrap.NewColumn(bootstrap.ColumnSmall, 3, rtnDiv)) + body.AddElement(rtnRow) btnEvent := func(sender *gowd.Element, event *gowd.EventElement) { - btnClicked(sender, event, ethAddr.Element, sendText.Element) + btnClicked(sender, event, ethAddr.Element.Kids[1], sendText.Element.Kids[1], rtnDiv) } btn.OnEvent(gowd.OnClick, btnEvent) div.AddElement(btn) + + // div.AddHTML(` // <label for="fname">Ethereum address:</label><br> // <input type="text" id="ethaddr" name="ethaddr"><br> @@ -64,14 +69,20 @@ func main() { gowd.Run(body) } +var lastElement *gowd.Element + // happens when the 'start' button is clicked -func btnClicked(sender *gowd.Element, event *gowd.EventElement, ethAddr, sendText *gowd.Element) { - div := bootstrap.NewElement("div", "well") - row := bootstrap.NewRow(bootstrap.NewColumn(bootstrap.ColumnSmall, 3, div)) - body.AddElement(row) +func btnClicked(sender *gowd.Element, event *gowd.EventElement, ethAddr, + sendText *gowd.Element, div *gowd.Element) { + + sender.SetAttribute("disabled", "true") + body.Render() + + if lastElement!=nil{ + div.RemoveElement(lastElement) + } // adds test to the body - text := div.AddElement(gowd.NewStyledText("Sending message...", gowd.BoldText)) // makes the body stop responding to user events body.Disable() @@ -79,26 +90,43 @@ func btnClicked(sender *gowd.Element, event *gowd.EventElement, ethAddr, sendTex // Send the message message := ethAddr.GetValue() + ";" + sendText.GetValue() - text.SetText(message) + defer func() { + sender.RemoveAttribute("disabled") + body.Render() + body.Enable() + }() + //text.SetText(message) + replyString := make(chan string) // Inline function to print message from client to page, callback for upcoming function replyFunc := func(payload []byte, err error) { + var result string if err != nil { - text.SetText(err.Error()) + result = err.Error() } else { - text.SetText(string(payload)) + result = string(payload) } - sender.SetText("Start") - body.RemoveElement(text) - body.Enable() + replyString <- result + //sender.SetText("Start") + //body.RemoveElement(text) + //body.Enable() } err := singleMngr.TransmitSingleUse(botContact, []byte(message), "xxCoinGame", 10, replyFunc, 30*time.Second) if err != nil { - text.SetText(err.Error()) - sender.SetText("Start") - body.RemoveElement(text) - body.Enable() + //body.Enable() + lastElement = div.AddElement(gowd.NewStyledText(err.Error(), gowd.BoldText)) + //sender.SetText("Start") + //body.RemoveElement(text) + //body.Enable() + return } + + result := <- replyString + + + lastElement = div.AddElement(gowd.NewStyledText(result, gowd.BoldText)) + + } -- GitLab