in tui/picker.go [253:299]
func (p picker) View() string {
if p.preViewFunc != nil {
p.preViewFunc(p.queue)
}
doc := strings.Builder{}
doc.WriteString(p.queue.header.render())
if p.showProgress && p.err == nil {
doc.WriteString(drawProgress(p.queue.calcPercent()))
doc.WriteString("\n\n")
}
if p.err != nil {
doc.WriteString(errorAlert{p.err.(errMsg)}.Render())
return docStyle.Render(doc.String())
}
if len(p.content) > 0 {
inst := strings.Builder{}
for _, v := range p.content {
content := v.render()
inst.WriteString(content)
}
doc.WriteString(instructionStyle.Width(width).Render(inst.String()))
doc.WriteString("\n")
doc.WriteString("\n")
}
if p.state != "waiting" && p.state != "idle" && p.state != "querying" {
selectedItemStyle.Width(hardWidthLimit)
doc.WriteString(componentStyle.Render(p.list.View()))
}
if p.state == "querying" {
spinnerSB := strings.Builder{}
spinnerSB.WriteString(textStyle.Render(fmt.Sprintf("%s ", p.spinnerLabel)))
spinnerSB.WriteString(spinnerStyle.Render(fmt.Sprintf("%s", p.spinner.View())))
if p.querySlowText != "" {
spinnerSB.WriteString(textStyle.Render(fmt.Sprintf("\n%s ", p.querySlowText)))
}
doc.WriteString(bodyStyle.Render(spinnerSB.String()))
}
return docStyle.Render(doc.String())
}