1
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-04-18 00:47:48 -04:00
gitea/modules/fileicon/render.go
Kerwin Bryant ec3dcafddd Extract the parameter of RenderEntryIconWithOpenStatus from git.TreeEntry to FileEntry to decouple it from git.TreeEntry.
This change will allow integrating the file icons of the file tree on the diff page into the unified rendering logic without relying on `git.TreeEntry`.
2025-04-10 12:21:50 +00:00

42 lines
997 B
Go

// Copyright 2025 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package fileicon
import (
"html/template"
"strings"
"code.gitea.io/gitea/modules/setting"
)
type RenderedIconPool struct {
IconSVGs map[string]template.HTML
}
func NewRenderedIconPool() *RenderedIconPool {
return &RenderedIconPool{
IconSVGs: make(map[string]template.HTML),
}
}
func (p *RenderedIconPool) RenderToHTML() template.HTML {
if len(p.IconSVGs) == 0 {
return ""
}
sb := &strings.Builder{}
sb.WriteString(`<div class=tw-hidden>`)
for _, icon := range p.IconSVGs {
sb.WriteString(string(icon))
}
sb.WriteString(`</div>`)
return template.HTML(sb.String())
}
func RenderEntryIconWithOpenStatus(renderedIconPool *RenderedIconPool, entry *FileEntry, isOpen bool) template.HTML {
if setting.UI.FileIconTheme == "material" {
return DefaultMaterialIconProvider().FileIconWithOpenStatus(renderedIconPool, entry, isOpen)
}
return BasicThemeIconWithOpenStatus(entry, isOpen)
}