all repos — gomponents @ f22ce3fb68ca6702a683b7759410ae50a9fddabd

HTML components in pure Go

Add If helper function (#57) Used to inline conditional nodes.

Markus Wüstenberg
commit

f22ce3fb68ca6702a683b7759410ae50a9fddabd

parent

428a2519eaa8e16767f86b417abd5af007f24fc6

1 file changed, 16 insertions(+), 3 deletions(-)

changed files
M gomponents.gogomponents.go
@@ -222,11 +222,11 @@ // Map something enumerable to a list of Nodes.
// Example: // items := []string{"hat", "partyhat"} // -// lis := g.Map(len(items), func(i int) g.Node { -// return g.El("li", g.Text(items[i])) +// lis := Map(len(items), func(i int) Node { +// return El("li", Text(items[i])) // }) // -// list := g.El("ul", lis...) +// list := El("ul", lis...) func Map(length int, cb func(i int) Node) []Node { var nodes []Node for i := 0; i < length; i++ {
@@ -234,3 +234,16 @@ nodes = append(nodes, cb(i))
} return nodes } + +// If condition is true, return the given Node. Otherwise, return nil. +// This helper function is good for inlining elements conditionally. +// Example: +// El("div", +// If(showMessage, El("span", "You lost your hat.")), +// ) +func If(condition bool, n Node) Node { + if condition { + return n + } + return nil +}