mirror of https://github.com/anoshenko/rui.git
Fixing
This commit is contained in:
parent
9a4f20f824
commit
ea930e7b73
|
|
@ -1,6 +1,9 @@
|
|||
package rui
|
||||
|
||||
import "strings"
|
||||
import (
|
||||
"iter"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Constants for [DetailsView] specific properties and events
|
||||
const (
|
||||
|
|
@ -80,6 +83,29 @@ func (detailsView *detailsViewData) Views() []View {
|
|||
return views
|
||||
}
|
||||
|
||||
func (detailsView *detailsViewData) ViewSeq() iter.Seq[View] {
|
||||
if detailsView.views == nil {
|
||||
detailsView.views = []View{}
|
||||
}
|
||||
|
||||
return func(yield func(View) bool) {
|
||||
if summary := detailsView.Get(Summary); summary != nil {
|
||||
switch summary := summary.(type) {
|
||||
case View:
|
||||
if !yield(summary) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for _, view := range detailsView.views {
|
||||
if !yield(view) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (detailsView *detailsViewData) setFunc(tag PropertyName, value any) []PropertyName {
|
||||
switch tag {
|
||||
case Summary:
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package rui
|
|||
import (
|
||||
"fmt"
|
||||
"iter"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
|
@ -159,7 +160,7 @@ func (listView *listViewData) init(session Session) {
|
|||
}
|
||||
|
||||
func (listView *listViewData) Views() []View {
|
||||
return listView.items
|
||||
return slices.Clone(listView.items)
|
||||
}
|
||||
|
||||
func (listView *listViewData) ViewSeq() iter.Seq[View] {
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ func viewByHTMLID(id string, startView View) View {
|
|||
return startView
|
||||
}
|
||||
if container, ok := startView.(ParentView); ok {
|
||||
for _, view := range container.Views() {
|
||||
for view := range container.ViewSeq() {
|
||||
if view != nil {
|
||||
if v := viewByHTMLID(id, view); v != nil {
|
||||
return v
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package rui
|
|||
import (
|
||||
"fmt"
|
||||
"iter"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
|
@ -1692,7 +1693,7 @@ func (table *tableViewData) ReloadCell(row, column int) {
|
|||
}
|
||||
|
||||
func (table *tableViewData) Views() []View {
|
||||
return table.cellViews
|
||||
return slices.Clone(table.cellViews)
|
||||
}
|
||||
|
||||
func (table *tableViewData) ViewSeq() iter.Seq[View] {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ func ViewByID(rootView View, id string, ids ...string) View {
|
|||
}
|
||||
|
||||
func viewByID(rootView ParentView, id string) View {
|
||||
for _, view := range rootView.Views() {
|
||||
for view := range rootView.ViewSeq() {
|
||||
if view != nil {
|
||||
if view.ID() == id {
|
||||
return view
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package rui
|
|||
|
||||
import (
|
||||
"iter"
|
||||
"slices"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
|
@ -68,12 +69,8 @@ func (container *viewsContainerData) setParentID(parentID string) {
|
|||
func (container *viewsContainerData) Views() []View {
|
||||
if container.views == nil {
|
||||
container.views = []View{}
|
||||
} else if count := len(container.views); count > 0 {
|
||||
views := make([]View, count)
|
||||
copy(views, container.views)
|
||||
return views
|
||||
}
|
||||
return []View{}
|
||||
return slices.Clone(container.views)
|
||||
}
|
||||
|
||||
func (container *viewsContainerData) ViewSeq() iter.Seq[View] {
|
||||
|
|
|
|||
Loading…
Reference in New Issue