feat: new readme

This commit is contained in:
leonardotrapani
2026-02-01 22:04:42 +01:00
parent 0b0e084155
commit 305f64a73d
16 changed files with 517 additions and 685 deletions
+15 -5
View File
@@ -91,13 +91,18 @@ type confirmScreen struct {
footer string
onYes func() screen
onNo func() screen
onBack func() screen
errText string
}
func newConfirmScreen(state *wizardState, title string, desc []string, yesLabel, noLabel string, onYes func() screen, onNo func() screen) *confirmScreen {
func newConfirmScreen(state *wizardState, title string, desc []string, yesLabel, yesDesc, noLabel, noDesc string, onYes func() screen, onNo func() screen, onBack func() screen) *confirmScreen {
items := []optionItem{
{title: yesLabel, value: "yes"},
{title: noLabel, value: "no"},
{title: yesLabel, desc: yesDesc, value: "yes"},
{title: noLabel, desc: noDesc, value: "no"},
}
footer := "enter select • esc cancel"
if onBack != nil {
footer = "enter select • esc back"
}
delegate := list.NewDefaultDelegate()
l := list.New(itemsToList(items), delegate, 0, 0)
@@ -106,7 +111,7 @@ func newConfirmScreen(state *wizardState, title string, desc []string, yesLabel,
l.SetFilteringEnabled(false)
l.SetShowStatusBar(false)
l.Title = title
return &confirmScreen{state: state, title: title, desc: desc, list: l, footer: "enter select • esc back", onYes: onYes, onNo: onNo}
return &confirmScreen{state: state, title: title, desc: desc, list: l, footer: footer, onYes: onYes, onNo: onNo, onBack: onBack}
}
func (s *confirmScreen) Init() tea.Cmd { return nil }
@@ -127,6 +132,9 @@ func (s *confirmScreen) Update(msg tea.Msg) (screen, tea.Cmd) {
}
}
case "esc", "q":
if s.onBack != nil {
return s.onBack(), nil
}
if s.onNo != nil {
return s.onNo(), nil
}
@@ -314,7 +322,9 @@ func newInfoScreen(state *wizardState, title string, desc []string, next func()
return &infoScreen{state: state, title: title, desc: desc, footer: "enter continue • esc back", next: next, back: back}
}
func (s *infoScreen) Init() tea.Cmd { return nil }
func (s *infoScreen) Init() tea.Cmd {
return nil
}
func (s *infoScreen) Update(msg tea.Msg) (screen, tea.Cmd) {
switch msg := msg.(type) {