in tui/picker.go [95:149]
func positionDefault(items []list.Item, defaultValue string) ([]list.Item, int) {
selectedIndex := 0
if defaultValue == "" {
return items, selectedIndex
}
defaultIndex := 0
newItems := []list.Item{}
defaultItem := item{}
createItem := item{}
returnItems := []list.Item{}
for i, v := range items {
item := v.(item)
if item.value == defaultValue || item.label == defaultValue || defaultValue == item.value+"|"+item.label {
defaultItem = item
text := defaultItem.label + " (Default Value)"
defaultItem.label = text
items[i] = defaultItem
defaultIndex = i
continue
}
if strings.Contains(item.label, "Create New Project") {
createItem = item
continue
}
newItems = append(newItems, item)
}
if len(items) <= 10 {
return items, defaultIndex
}
createAdded := 0
if createItem.label != "" {
createAdded++
returnItems = append(returnItems, createItem)
}
defaultAdded := 0
if defaultItem.value != "" {
defaultAdded++
returnItems = append(returnItems, defaultItem)
}
selectedIndex = (createAdded + defaultAdded) - 1
if selectedIndex < 0 {
selectedIndex = 0
}
returnItems = append(returnItems, newItems...)
return returnItems, selectedIndex
}