"fmt"
"github.com/gdamore/tcell/v2"
"github.com/rivo/tview"
- "github.com/stretchr/testify/mock"
"go.uber.org/zap"
"gopkg.in/yaml.v3"
"math/big"
return iconBytes
}
-func (cp *ClientPrefs) AddBookmark(name, addr, login, pass string) error {
+func (cp *ClientPrefs) AddBookmark(name, addr, login, pass string) {
cp.Bookmarks = append(cp.Bookmarks, Bookmark{Addr: addr, Login: login, Password: pass})
-
- return nil
}
func readConfig(cfgPath string) (*ClientPrefs, error) {
Handle(*Client, *Transaction) ([]Transaction, error)
}
-type mockClientHandler struct {
- mock.Mock
-}
-
-func (mh *mockClientHandler) Handle(cc *Client, t *Transaction) ([]Transaction, error) {
- args := mh.Called(cc, t)
- return args.Get(0).([]Transaction), args.Error(1)
-}
-
var clientHandlers = map[uint16]ClientHandler{
TranChatMsg: handleClientChatMsg,
TranLogin: handleClientTranLogin,
}
func handleTranServerMsg(c *Client, t *Transaction) (res []Transaction, err error) {
- time := time.Now().Format(time.RFC850)
+ now := time.Now().Format(time.RFC850)
msg := strings.ReplaceAll(string(t.GetField(FieldData).Data), "\r", "\n")
- msg += "\n\nAt " + time
+ msg += "\n\nAt " + now
title := fmt.Sprintf("| Private Message From: %s |", t.GetField(FieldUserName).Data)
msgBox := tview.NewTextView().SetScrollable(true)
msgBox.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
switch event.Key() {
case tcell.KeyEscape:
- c.UI.Pages.RemovePage("serverMsgModal" + time)
+ c.UI.Pages.RemovePage("serverMsgModal" + now)
}
return event
})
AddItem(nil, 0, 1, false), 0, 2, true).
AddItem(nil, 0, 1, false)
- c.UI.Pages.AddPage("serverMsgModal"+time, centeredFlex, true, true)
+ c.UI.Pages.AddPage("serverMsgModal"+now, centeredFlex, true, true)
c.UI.App.Draw() // TODO: errModal doesn't render without this. wtf?
return res, err
}
func (c *Client) showErrMsg(msg string) {
- time := time.Now().Format(time.RFC850)
+ t := time.Now().Format(time.RFC850)
title := "| Error |"
msgBox.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
switch event.Key() {
case tcell.KeyEscape:
- c.UI.Pages.RemovePage("serverMsgModal" + time)
+ c.UI.Pages.RemovePage("serverMsgModal" + t)
}
return event
})
AddItem(nil, 0, 1, false), 0, 2, true).
AddItem(nil, 0, 1, false)
- c.UI.Pages.AddPage("serverMsgModal"+time, centeredFlex, true, true)
+ c.UI.Pages.AddPage("serverMsgModal"+t, centeredFlex, true, true)
c.UI.App.Draw() // TODO: errModal doesn't render without this. wtf?
}
func (ui *UI) renderJoinServerForm(name, server, login, password, backPage string, save, defaultConnect bool) *tview.Flex {
joinServerForm := tview.NewForm()
joinServerForm.
- // AddInputField("Name", server, 0, func(textToCheck string, lastChar rune) bool {
- // return false
- // }, nil).
AddInputField("Server", server, 0, nil, nil).
AddInputField("Login", login, 0, nil, nil).
AddPasswordField("Password", password, 0, '*', nil).
AddCheckbox("Save", save, func(checked bool) {
- ui.HLClient.Logger.Infow("saving bookmark")
- // TODO: Implement bookmark saving
+ ui.HLClient.Pref.AddBookmark(
+ joinServerForm.GetFormItem(0).(*tview.InputField).GetText(),
+ joinServerForm.GetFormItem(0).(*tview.InputField).GetText(),
+ joinServerForm.GetFormItem(1).(*tview.InputField).GetText(),
+ joinServerForm.GetFormItem(2).(*tview.InputField).GetText(),
+ )
- ui.HLClient.Pref.AddBookmark(joinServerForm.GetFormItem(0).(*tview.InputField).GetText(), joinServerForm.GetFormItem(0).(*tview.InputField).GetText(), joinServerForm.GetFormItem(1).(*tview.InputField).GetText(), joinServerForm.GetFormItem(2).(*tview.InputField).GetText())
out, err := yaml.Marshal(ui.HLClient.Pref)
if err != nil {
panic(err)
if err != nil {
panic(err)
}
- // Pref := ui.HLClient.Pref
}).
AddButton("Cancel", func() {
ui.Pages.SwitchToPage(backPage)