package main import ( "strconv" "github.com/ryanhamamura/via" // "github.com/go-via/via-plugin-picocss/picocss" . "github.com/ryanhamamura/via/h" ) func main() { v := via.New() v.Config(via.Options{ // Plugins: []via.Plugin{picocss.Default}, }) v.Page("/counters/{counter_id}/{start_at_step}", func(c *via.Context) { counterID := c.GetPathParam("counter_id") startAtStep, _ := strconv.Atoi(c.GetPathParam("start_at_step")) count := 0 step := c.Signal(startAtStep) increment := c.Action(func() { count += step.Int() c.Sync() }) c.View(func() H { return Main(Class("container"), Nav( Ul( Li( Strong(Text("⚡Via Example")), ), ), Ul( Li( Raw(``), A(Class("contrast"), Text(" GitHub"), Href("https://github.com/go-via/via"), ), ), ), ), Section( Article( H3(Text(counterID)), Hr(), H5(Textf("Count %d", count)), H6(Text("Step "), step.Text()), FieldSet(Role("group"), Input(Type("number"), step.Bind()), Button(Text("Increment"), increment.OnClick()), ), ), ), ) }) }) v.Start() }