-
Notifications
You must be signed in to change notification settings - Fork 0
/
pageview.go
41 lines (32 loc) · 1.07 KB
/
pageview.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// +build js
package main
import (
"fmt"
"syscall/js"
"github.com/feloy/wasmgo/pkg/dom"
"github.com/feloy/wasmgo/pkg/dom/attributes"
"github.com/feloy/wasmgo/pkg/dom/elements"
)
type PageView struct{}
var _ dom.Element = (*PageView)(nil)
func (o PageView) Render(document js.Value) js.Value {
buttonHandler := func() {
fmt.Println("clicked!")
}
titleLink := LinkView{}
return elements.NewDiv("").
AddChild(elements.NewH1("").WithId("title1").AppendClass("title-level-1").AppendClass("other-class").
AddChild(elements.NewText("Title 1 (")).
AddChild(titleLink).
AddChild(elements.NewText(")"))).
AddChild(elements.NewH2("Title 1.1")).
AddChild(elements.NewHr()).
AddChild(elements.NewP("some text: bla bla")).
AddChild(elements.NewButton("click here").AppendAccesskey("k").AddOnclickHandler(buttonHandler)).
AddChild(elements.NewH2("Title 1.2")).
AddChild(elements.NewP("").
AddChild(elements.NewA("Web Assembly", elements.AOptions{
Destination: "https://webassembly.org/",
Relation: attributes.RelationExternal,
}))).Render(document)
}