diff options
| author | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2023-05-28 09:39:33 -0700 |
|---|---|---|
| committer | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2023-05-28 09:39:33 -0700 |
| commit | 04f402736027ced9bfbbf628136dc4872b671555 (patch) | |
| tree | c3787d610f4be99499ca6102913548c22a4ee34b /hotline/ui.go | |
| parent | a8e89ca4e65f5db3ee6061ede68aade814b4d75c (diff) | |
Handler tracker list errors
Diffstat (limited to 'hotline/ui.go')
| -rw-r--r-- | hotline/ui.go | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/hotline/ui.go b/hotline/ui.go index 0347274..e3e2fab 100644 --- a/hotline/ui.go +++ b/hotline/ui.go @@ -102,12 +102,7 @@ func (ui *UI) showBookmarks() *tview.List { return list } -func (ui *UI) getTrackerList() *tview.List { - listing, err := GetListing(ui.HLClient.Pref.Tracker) - if err != nil { - // TODO - } - +func (ui *UI) getTrackerList(servers []ServerRecord) *tview.List { list := tview.NewList() list.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { if event.Key() == tcell.KeyEsc { @@ -117,14 +112,12 @@ func (ui *UI) getTrackerList() *tview.List { }) list.Box.SetBorder(true).SetTitle("| Servers |") - shortcut := 97 // rune for "a" - for i, srv := range listing { - addr := srv.Addr() - srvName := srv.Name + const shortcut = 97 // rune for "a" + for i, srv := range servers { list.AddItem(string(srv.Name), string(srv.Description), rune(shortcut+i), func() { ui.Pages.RemovePage("joinServer") - newJS := ui.renderJoinServerForm(string(srvName), addr, GuestAccount, "", trackerListPage, false, true) + newJS := ui.renderJoinServerForm(string(srv.Name), srv.Addr(), GuestAccount, "", trackerListPage, false, true) ui.Pages.AddPage("joinServer", newJS, true, true) ui.Pages.ShowPage("joinServer") @@ -411,7 +404,7 @@ func (ui *UI) renderServerUI() *tview.Flex { newsPostTextArea.SetText(curTxt) } default: - _, _ = fmt.Fprintf(newsPostTextArea, string(event.Rune())) + _, _ = fmt.Fprint(newsPostTextArea, string(event.Rune())) } } @@ -468,7 +461,20 @@ func (ui *UI) Start() { ui.Pages.AddAndSwitchToPage("bookmarks", ui.showBookmarks(), true) }). AddItem("Browse Tracker", "", 't', func() { - ui.trackerList = ui.getTrackerList() + listing, err := GetListing(ui.HLClient.Pref.Tracker) + if err != nil { + errMsg := fmt.Sprintf("Error fetching tracker results:\n%v", err) + errModal := tview.NewModal() + errModal.SetText(errMsg) + errModal.AddButtons([]string{"Cancel"}) + errModal.SetDoneFunc(func(buttonIndex int, buttonLabel string) { + ui.Pages.RemovePage("errModal") + }) + ui.Pages.RemovePage("joinServer") + ui.Pages.AddPage("errModal", errModal, false, true) + return + } + ui.trackerList = ui.getTrackerList(listing) ui.Pages.AddAndSwitchToPage("trackerList", ui.trackerList, true) }). AddItem("Settings", "", 's', func() { |