| 20 | } |
| 21 | |
| 22 | func Page(ctx context.Context, props map[string]any) any { |
| 23 | clicked, setClicked := UseState(ctx, false) |
| 24 | var clickedDiv *VDomElem |
| 25 | if clicked { |
| 26 | clickedDiv = Bind(`<div>clicked</div>`, nil) |
| 27 | } |
| 28 | clickFn := func() { |
| 29 | log.Printf("run clickFn\n") |
| 30 | setClicked(true) |
| 31 | } |
| 32 | return Bind( |
| 33 | ` |
| 34 | <div> |
| 35 | <h1>hello world</h1> |
| 36 | <Button onClick="#param:clickFn">hello</Button> |
| 37 | <bindparam key="clickedDiv"/> |
| 38 | </div> |
| 39 | `, |
| 40 | map[string]any{"clickFn": clickFn, "clickedDiv": clickedDiv}, |
| 41 | ) |
| 42 | } |
| 43 | |
| 44 | func Button(ctx context.Context, props map[string]any) any { |
| 45 | ref := UseVDomRef(ctx) |