refactor: make RenderNav more like a typical component
1 file changed, 9 insertions(+), 12 deletions(-)
jump to
M templates/page.go → templates/page.go
@@ -70,19 +70,16 @@ } } func RenderNav(data PageData) g.Node { - var items []g.Node + return Nav(Ul( + g.If(data.Name != "", NavItem(joinPaths(data.Name), "summary")), + g.If(data.Name != "", NavItem(joinPaths(data.Name, "refs", ""), "refs")), + g.If(data.Ref != "", NavItem(joinPaths(data.Name, "tree", data.Ref, ""), "tree")), + g.If(data.Ref != "", NavItem(joinPaths(data.Name, "log", data.Ref), "log")), + )) +} - if data.Name != "" { - items = append(items, Li(A(Href(joinPaths(data.Name)), g.Text("summary")))) - items = append(items, Li(A(Href(joinPaths(data.Name, "refs", "")), g.Text("refs")))) - - if data.Ref != "" { - items = append(items, Li(A(Href(joinPaths(data.Name, "tree", data.Ref, "")), g.Text("tree")))) - items = append(items, Li(A(Href(joinPaths(data.Name, "log", data.Ref)), g.Text("log")))) - } - } - - return Nav(Ul(items...)) +func NavItem(href string, text string) g.Node { + return Li(A(Href(href), g.Text(text))) } func RepoHeader(data PageData) g.Node {