- return list
-}
-
-func (ui *UI) renderSettingsForm() *tview.Flex {
- iconStr := strconv.Itoa(ui.HLClient.pref.IconID)
- settingsForm := tview.NewForm()
- settingsForm.AddInputField("Your Name", ui.HLClient.pref.Username, 0, nil, nil)
- settingsForm.AddInputField("IconID", iconStr, 0, func(idStr string, _ rune) bool {
- _, err := strconv.Atoi(idStr)
- return err == nil
- }, nil)
- settingsForm.AddInputField("Tracker", ui.HLClient.pref.Tracker, 0, nil, nil)
- settingsForm.AddButton("Save", func() {
- usernameInput := settingsForm.GetFormItem(0).(*tview.InputField).GetText()
- if len(usernameInput) == 0 {
- usernameInput = "unnamed"
- }
- ui.HLClient.pref.Username = usernameInput
- iconStr = settingsForm.GetFormItem(1).(*tview.InputField).GetText()
- ui.HLClient.pref.IconID, _ = strconv.Atoi(iconStr)
- ui.HLClient.pref.Tracker = settingsForm.GetFormItem(2).(*tview.InputField).GetText()
-
- out, err := yaml.Marshal(&ui.HLClient.pref)
- if err != nil {
- // TODO: handle err
- }
- // TODO: handle err
- err = ioutil.WriteFile(ui.HLClient.cfgPath, out, 0666)
- if err != nil {
- println(ui.HLClient.cfgPath)
- panic(err)
- }
- ui.Pages.RemovePage("settings")
- })
- settingsForm.SetBorder(true)
- settingsForm.SetCancelFunc(func() {
- ui.Pages.RemovePage("settings")
- })
- settingsPage := tview.NewFlex().SetDirection(tview.FlexRow)
- settingsPage.Box.SetBorder(true).SetTitle("Settings")
- settingsPage.AddItem(settingsForm, 0, 1, true)
-
- centerFlex := tview.NewFlex().
- AddItem(nil, 0, 1, false).
- AddItem(tview.NewFlex().
- SetDirection(tview.FlexRow).
- AddItem(nil, 0, 1, false).
- AddItem(settingsForm, 15, 1, true).
- AddItem(nil, 0, 1, false), 40, 1, true).
- AddItem(nil, 0, 1, false)
-
- return centerFlex