{% import "github.com/go-git/go-git/v5/plumbing/object" %}

{% code
type GitItemTreePage struct {
    CurrentPath string
    Tree *object.Tree

    // TODO: remove this since it can be passed by GitCommit
    Ref string
    Name string
}
%}

{% func (g *GitItemTreePage) Nav(name, ref string) %}{%= GitItemNav(name, ref, Tree) %}{% endfunc %}

{% func (g *GitItemTreePage) GitContent() %}
{% for _, e := range g.Tree.Entries %}
<div class="row">
  <div class="col">{%s Ignore(e.Mode.ToOSFileMode()).String() %}</div>
  {% if e.Mode.IsFile() %}
  <div class="col-md"><a href="/{%s g.Name %}/blob/{%s g.Ref%}/{%s g.CurrentPath %}/{%s e.Name %}">{%s e.Name %}</a></div>
  {% else %}
  <div class="col-md"><a href="./{%s g.CurrentPath %}/{%s e.Name %}">{%s e.Name %}</a></div>
  {% endif %}
  <div class="col-md">{%dl Ignore(g.Tree.Size(e.Name))%} KiB</div>
</div>
{% endfor %}
{% endfunc %}