-var clientHandlers = map[uint16]clientTHandler{
- // Server initiated
- tranChatMsg: clientTransaction{
- Name: "tranChatMsg",
- Handler: handleClientChatMsg,
- },
- tranLogin: clientTransaction{
- Name: "tranLogin",
- Handler: handleClientTranLogin,
- },
- tranShowAgreement: clientTransaction{
- Name: "tranShowAgreement",
- Handler: handleClientTranShowAgreement,
- },
- tranUserAccess: clientTransaction{
- Name: "tranUserAccess",
- Handler: handleClientTranUserAccess,
- },
- tranGetUserNameList: clientTransaction{
- Name: "tranGetUserNameList",
- Handler: handleClientGetUserNameList,
- },
- tranNotifyChangeUser: clientTransaction{
- Name: "tranNotifyChangeUser",
- Handler: handleNotifyChangeUser,
- },
- tranNotifyDeleteUser: clientTransaction{
- Name: "tranNotifyDeleteUser",
- Handler: handleNotifyDeleteUser,
- },
- tranGetMsgs: clientTransaction{
- Name: "tranNotifyDeleteUser",
- Handler: handleGetMsgs,
- },
- tranGetFileNameList: clientTransaction{
- Name: "tranGetFileNameList",
- Handler: handleGetFileNameList,
- },
+func (c *Client) showErrMsg(msg string) {
+ t := time.Now().Format(time.RFC850)
+
+ title := "| Error |"
+
+ msgBox := tview.NewTextView().SetScrollable(true)
+ msgBox.SetText(msg).SetBackgroundColor(tcell.ColorDarkRed)
+ msgBox.SetTitle(title).SetBorder(true)
+ msgBox.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
+ switch event.Key() {
+ case tcell.KeyEscape:
+ c.UI.Pages.RemovePage("serverMsgModal" + t)
+ }
+ return event
+ })
+
+ centeredFlex := tview.NewFlex().
+ AddItem(nil, 0, 1, false).
+ AddItem(tview.NewFlex().SetDirection(tview.FlexRow).
+ AddItem(nil, 0, 1, false).
+ AddItem(msgBox, 0, 2, true).
+ AddItem(nil, 0, 1, false), 0, 2, true).
+ AddItem(nil, 0, 1, false)
+
+ c.UI.Pages.AddPage("serverMsgModal"+t, centeredFlex, true, true)
+ c.UI.App.Draw() // TODO: errModal doesn't render without this. wtf?