mirror of
https://github.com/DeBrosOfficial/network.git
synced 2026-01-30 17:43:03 +00:00
57 lines
1.1 KiB
Go
57 lines
1.1 KiB
Go
package steps
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/charmbracelet/bubbles/textinput"
|
|
)
|
|
|
|
// Domain step for entering domain name
|
|
type Domain struct {
|
|
Input textinput.Model
|
|
Error error
|
|
}
|
|
|
|
// NewDomain creates a new Domain step
|
|
func NewDomain() *Domain {
|
|
ti := textinput.New()
|
|
ti.Focus()
|
|
ti.CharLimit = 256
|
|
ti.Width = 50
|
|
ti.Placeholder = "e.g., node-1.orama.network"
|
|
return &Domain{
|
|
Input: ti,
|
|
}
|
|
}
|
|
|
|
// View renders the domain input step
|
|
func (d *Domain) View() string {
|
|
var s strings.Builder
|
|
s.WriteString(titleStyle.Render("Domain Name") + "\n\n")
|
|
s.WriteString("Enter the domain for this node:\n\n")
|
|
s.WriteString(d.Input.View())
|
|
|
|
if d.Error != nil {
|
|
s.WriteString("\n\n" + errorStyle.Render("✗ "+d.Error.Error()))
|
|
}
|
|
|
|
s.WriteString("\n\n")
|
|
s.WriteString(helpStyle.Render("Enter to confirm • Esc to go back"))
|
|
return s.String()
|
|
}
|
|
|
|
// SetValue sets the input value
|
|
func (d *Domain) SetValue(value string) {
|
|
d.Input.SetValue(value)
|
|
}
|
|
|
|
// Value returns the current input value
|
|
func (d *Domain) Value() string {
|
|
return strings.TrimSpace(d.Input.Value())
|
|
}
|
|
|
|
// SetError sets an error message
|
|
func (d *Domain) SetError(err error) {
|
|
d.Error = err
|
|
}
|