some fixes for childlist

This commit is contained in:
maddalax 2024-09-29 09:45:17 -05:00
parent ec30a4e7e8
commit fd0d72362f
3 changed files with 16 additions and 7 deletions

View file

@ -37,7 +37,13 @@ func NewTextContent(content string) *TextContent {
}
func NewChildList(children ...Ren) *ChildList {
return &ChildList{
Children: children,
cl := &ChildList{
Children: Filter(children, func(item Ren) bool {
return item != nil
}),
}
if len(children) == 0 || children == nil {
cl.Children = make([]Ren, 0)
}
return cl
}

View file

@ -90,15 +90,17 @@ func (node *Element) Render(context *RenderContext) {
if shouldFlatten {
// first pass, flatten the children
flatChildren := make([]Ren, totalChildren)
for i, child := range node.children {
index := 0
for _, child := range node.children {
switch c := child.(type) {
case *ChildList:
for _, ren := range c.Children {
flatChildren[i] = ren
i++
flatChildren[index] = ren
index++
}
default:
flatChildren[i] = child
flatChildren[index] = child
index++
}
}

View file

@ -57,8 +57,9 @@ func SubmitButton() *h.Element {
)
}
func Spinner() *h.Element {
func Spinner(children ...h.Ren) *h.Element {
return h.Div(
h.Children(children...),
h.Class("absolute left-1 spinner spinner-border animate-spin inline-block w-6 h-6 border-4 rounded-full border-slate-200 border-t-transparent"),
h.Attribute("role", "status"),
)