add docs for eval commands
This commit is contained in:
parent
b75dadf00e
commit
4c6187e18d
4 changed files with 86 additions and 2 deletions
83
htmgo-site/pages/docs/interactivity/eval-commands.go
Normal file
83
htmgo-site/pages/docs/interactivity/eval-commands.go
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
package interactivity
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/maddalax/htmgo/framework/h"
|
||||||
|
"htmgo-site/ui"
|
||||||
|
)
|
||||||
|
|
||||||
|
import . "htmgo-site/pages/docs"
|
||||||
|
|
||||||
|
func EvalCommands(ctx *h.RequestContext) *h.Page {
|
||||||
|
return DocPage(
|
||||||
|
ctx,
|
||||||
|
h.Div(
|
||||||
|
h.Class("flex flex-col gap-3"),
|
||||||
|
Title("Eval Commands"),
|
||||||
|
Text(`
|
||||||
|
Now that we've learned how about events/commands, I want to highlight a few useful commands.
|
||||||
|
One in particular is EvalCommands, which allows you to evaluate any command against any element just by referencing it in Go.
|
||||||
|
`),
|
||||||
|
SubTitle("Referencing an element directly"),
|
||||||
|
Text("Example: Setting the text of an element on click of another element"),
|
||||||
|
ui.GoCodeSnippet(EvalCommandsSnippet),
|
||||||
|
Text(
|
||||||
|
`We are calling <b>js.EvalCommands</b> with the text variable and the command to toggle the text of the element.
|
||||||
|
This always you to run any commands against any element, without having to query for it via a selector.
|
||||||
|
`,
|
||||||
|
),
|
||||||
|
h.P(
|
||||||
|
h.A(
|
||||||
|
h.Class("underline text-blue-500"),
|
||||||
|
h.Href("/examples/js-hide-children-on-click"),
|
||||||
|
h.Text("View the demo"),
|
||||||
|
),
|
||||||
|
h.Text(" for more details on what this could be used for."),
|
||||||
|
),
|
||||||
|
h.Div(
|
||||||
|
h.Class("mt-4"),
|
||||||
|
),
|
||||||
|
SubTitle("Using a selector"),
|
||||||
|
Text("If needed, you can query by selector"),
|
||||||
|
ui.GoCodeSnippet(EvalCommandsSnippetWithSelector),
|
||||||
|
NextStep(
|
||||||
|
"mt-4",
|
||||||
|
PrevBlock("Events / Commands", DocPath("/interactivity/events")),
|
||||||
|
NextBlock("Caching Components", DocPath("/performance/caching-globally")),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const EvalCommandsSnippetWithSelector = `
|
||||||
|
func MyComponent(ctx *h.RequestContext) *h.Element {
|
||||||
|
text := h.Pf("Text Before", h.Id("my-element"))
|
||||||
|
return h.Div(
|
||||||
|
h.Button(
|
||||||
|
h.Text("Toggle Text"),
|
||||||
|
h.OnClick(
|
||||||
|
js.EvalCommandsOnSelector(
|
||||||
|
"#my-element",
|
||||||
|
js.ToggleText("Text Before", "Text After"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
text,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
var EvalCommandsSnippet = `func MyComponent(ctx *h.RequestContext) *h.Element {
|
||||||
|
text := h.Pf("Text Before")
|
||||||
|
return h.Div(
|
||||||
|
h.Button(
|
||||||
|
h.Text("Toggle Text"),
|
||||||
|
h.OnClick(
|
||||||
|
js.EvalCommands(
|
||||||
|
text,
|
||||||
|
js.ToggleText("Text Before", "Text After"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
text,
|
||||||
|
)
|
||||||
|
}`
|
||||||
|
|
@ -61,7 +61,7 @@ func EventsAndCommands(ctx *h.RequestContext) *h.Page {
|
||||||
NextStep(
|
NextStep(
|
||||||
"mt-4",
|
"mt-4",
|
||||||
PrevBlock("Swapping", DocPath("/interactivity/swapping")),
|
PrevBlock("Swapping", DocPath("/interactivity/swapping")),
|
||||||
NextBlock("Caching Components", DocPath("/performance/caching-globally")),
|
NextBlock("Eval Commands", DocPath("/interactivity/eval-commands")),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ func CachingGlobally(ctx *h.RequestContext) *h.Page {
|
||||||
`),
|
`),
|
||||||
NextStep(
|
NextStep(
|
||||||
"mt-4",
|
"mt-4",
|
||||||
PrevBlock("Events", DocPath("/interactivity/events")),
|
PrevBlock("Eval Commands", DocPath("/interactivity/eval-commands")),
|
||||||
NextBlock("Caching Per Key", DocPath("/performance/caching-per-key")),
|
NextBlock("Caching Per Key", DocPath("/performance/caching-per-key")),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ var sections = []Section{
|
||||||
{Title: "Swapping", Path: DocPath("/interactivity/swapping")},
|
{Title: "Swapping", Path: DocPath("/interactivity/swapping")},
|
||||||
{Title: "Events", Path: DocPath("/interactivity/events")},
|
{Title: "Events", Path: DocPath("/interactivity/events")},
|
||||||
{Title: "Evaluating Javascript", Path: DocPath("/interactivity/events")},
|
{Title: "Evaluating Javascript", Path: DocPath("/interactivity/events")},
|
||||||
|
{Title: "Eval Commands", Path: DocPath("/interactivity/eval-commands")},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue