github.com/louisevanderlith/droxolite@v1.20.2/menu/menu.go (about)

     1  package menu
     2  
     3  type Menu struct {
     4  	Items []Item
     5  }
     6  
     7  func NewMenu() *Menu {
     8  	return &Menu{}
     9  }
    10  
    11  func (m *Menu) AddItem(itm Item) {
    12  	m.Items = append(m.Items, itm)
    13  }
    14  
    15  func (m *Menu) SetActive(link string) bool {
    16  	foundActive := false
    17  
    18  	for _, item := range m.Items {
    19  		item.Active = item.Link == link
    20  
    21  		if !foundActive && item.Active {
    22  			foundActive = true
    23  		}
    24  
    25  		for _, child := range item.Children {
    26  			child.Active = child.Link == link
    27  		}
    28  	}
    29  
    30  	return foundActive
    31  }