func()

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())
}