diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-23 23:45:07 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-23 23:45:07 +0200 |
| commit | c1b954ad517cef00bf480d5229b253a8c6524be7 (patch) | |
| tree | 376a281de7604782722d5780657aff319c32a1d6 /internal/tui | |
| parent | 369c995292b0ae830e077c5845f0b09fbe3508a4 (diff) | |
| download | lectio-c1b954ad517cef00bf480d5229b253a8c6524be7.tar.gz lectio-c1b954ad517cef00bf480d5229b253a8c6524be7.zip | |
cli-ui,web: real flag parsing for lectio-ui/lectio-web (accept useful flags, reject unknown, -h/-v)
Diffstat (limited to 'internal/tui')
| -rw-r--r-- | internal/tui/tui.go | 23 | ||||
| -rw-r--r-- | internal/tui/tui_test.go | 4 |
2 files changed, 18 insertions, 9 deletions
diff --git a/internal/tui/tui.go b/internal/tui/tui.go index 47314b6..16cb304 100644 --- a/internal/tui/tui.go +++ b/internal/tui/tui.go @@ -44,24 +44,33 @@ type errMsg struct { } // New builds the initial model: cfg.Offline drops "pl" from the version -// list (render.OfflineVersions), the active version starts at -// cfg.DefaultVersion (falling back to the first version if not found, or -// "" if there are none), and the date starts at today. The first fetch is -// issued by Init, not here. -func New(cfg config.Config) Model { +// list (render.OfflineVersions). startVersion selects the active version +// (falling back to cfg.DefaultVersion when ""), still resolved through +// EffectiveVersions/indexOf so an unavailable version falls back to index 0. +// startDate selects the starting date (falling back to today when ""). The +// first fetch is issued by Init, not here. +func New(cfg config.Config, startDate, startVersion string) Model { versions := render.EffectiveVersions(append([]string(nil), cfg.Versions...), cfg.Lectionary, cfg.Offline) - idx := indexOf(versions, cfg.DefaultVersion) + if startVersion == "" { + startVersion = cfg.DefaultVersion + } + idx := indexOf(versions, startVersion) if idx < 0 { idx = 0 } idx = clampIndex(idx, len(versions)) + date := startDate + if date == "" { + date = time.Now().Format("2006-01-02") + } + return Model{ cfg: cfg, versions: versions, verIdx: idx, - date: time.Now().Format("2006-01-02"), + date: date, loading: true, } } diff --git a/internal/tui/tui_test.go b/internal/tui/tui_test.go index 60b473b..2b966ee 100644 --- a/internal/tui/tui_test.go +++ b/internal/tui/tui_test.go @@ -10,7 +10,7 @@ import ( ) func TestVersionCycle(t *testing.T) { - m := New(config.Config{Versions: []string{"pl", "wuj", "vul"}, DefaultVersion: "pl"}) + m := New(config.Config{Versions: []string{"pl", "wuj", "vul"}, DefaultVersion: "pl"}, "", "") if m.version() != "pl" { t.Fatalf("start = %q", m.version()) } @@ -25,7 +25,7 @@ func TestVersionCycle(t *testing.T) { } func TestOfflineDropsPL(t *testing.T) { - m := New(config.Config{Versions: []string{"pl", "wuj", "vul"}, DefaultVersion: "pl", Offline: true}) + m := New(config.Config{Versions: []string{"pl", "wuj", "vul"}, DefaultVersion: "pl", Offline: true}, "", "") for _, v := range m.versions { if v == "pl" { t.Error("offline model kept pl") |
