GoSetup-bubble/setup/fields/compute.go

58 lines
1.4 KiB
Go
Raw Normal View History

2025-12-26 17:45:37 +05:00
package fields
import (
"fmt"
tea "github.com/charmbracelet/bubbletea"
)
// ComputeModel структура описывающая модель вывода вычисляемых значений
2025-12-26 17:45:37 +05:00
type ComputeModel struct {
label string //Имя поля
description string //Описание поля
value string //Значение поля
2025-12-26 17:45:37 +05:00
}
// NewComputeModel создаем новую модель вывода вычисляемых значений
func NewComputeModel(label, value, description string) *ComputeModel {
2025-12-26 17:45:37 +05:00
return &ComputeModel{
label: label,
description: description,
value: value,
2025-12-26 17:45:37 +05:00
}
}
func (m *ComputeModel) Init() tea.Cmd {
return nil
}
// Update отслеживает действия с полем. Так как поле нужно только для вывода, никаких действий не выполняем.
2025-12-26 17:45:37 +05:00
func (m *ComputeModel) Update(msg tea.Msg) (FieldModel, tea.Cmd) {
return m, nil
}
func (m *ComputeModel) View() string {
res := fmt.Sprintf("%s: %s", m.label, m.value)
if m.description != "" {
res += fmt.Sprintf("\n%s", m.description)
}
return res
2025-12-26 17:45:37 +05:00
}
func (m *ComputeModel) Focus() {}
func (m *ComputeModel) Blur() {
}
func (m *ComputeModel) CaptureKeys() bool {
return false
}
func (m *ComputeModel) GetLabel() string {
return m.label
2025-12-26 17:45:37 +05:00
}
func (m *ComputeModel) GetValue() interface{} {
return m.value
}