github.com/EngineerKamesh/gofullstack@v0.0.0-20180609171605-d41341d7d4ee/volume3/section1/basics/client/client.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"honnef.co/go/js/dom"
     7  )
     8  
     9  var d = dom.GetWindow().Document().(dom.HTMLDocument)
    10  
    11  func run() {
    12  
    13  	messageInput := d.GetElementByID("messageInput").(*dom.HTMLInputElement)
    14  
    15  	alertButtonJS := d.GetElementByID("alertMessageJSGlobal").(*dom.HTMLButtonElement)
    16  	alertButtonJS.AddEventListener("click", false, func(event dom.Event) {
    17  		DisplayAlertMessageJSGlobal(messageInput.Value)
    18  	})
    19  
    20  	alertButtonDOM := d.GetElementByID("alertMessageDOM").(*dom.HTMLButtonElement)
    21  	alertButtonDOM.AddEventListener("click", false, func(event dom.Event) {
    22  		DisplayAlertMessageDOM(messageInput.Value)
    23  	})
    24  
    25  	showGopherButton := d.GetElementByID("showGopher").(*dom.HTMLButtonElement)
    26  	showGopherButton.AddEventListener("click", false, func(event dom.Event) {
    27  		ShowIsomorphicGopher()
    28  	})
    29  
    30  	hideGopherButton := d.GetElementByID("hideGopher").(*dom.HTMLButtonElement)
    31  	hideGopherButton.AddEventListener("click", false, func(event dom.Event) {
    32  		HideIsomorphicGopher()
    33  	})
    34  
    35  	builtinDemoButton := d.GetElementByID("builtinDemoButton").(*dom.HTMLButtonElement)
    36  	builtinDemoButton.AddEventListener("click", false, func(event dom.Event) {
    37  		builtinDemo(event.Target())
    38  	})
    39  
    40  	lowercaseTransformButton := d.GetElementByID("lowercaseTransformButton").(*dom.HTMLButtonElement)
    41  	lowercaseTransformButton.AddEventListener("click", false, func(event dom.Event) {
    42  		go lowercaseTextTransformer()
    43  	})
    44  
    45  }
    46  
    47  func main() {
    48  	switch readyState := d.ReadyState(); readyState {
    49  	case "loading":
    50  		d.AddEventListener("DOMContentLoaded", false, func(dom.Event) {
    51  			go run()
    52  		})
    53  	case "interactive", "complete":
    54  		run()
    55  	default:
    56  		panic(fmt.Errorf("internal error: unexpected document.ReadyState value: %v", readyState))
    57  	}
    58  
    59  }