diff --git a/internal/ui/chat/message_input.go b/internal/ui/chat/message_input.go index 009b505..51cc2fb 100644 --- a/internal/ui/chat/message_input.go +++ b/internal/ui/chat/message_input.go @@ -749,12 +749,17 @@ func (mi *messageInput) attach(name string, reader io.Reader) { mi.SetFooter("Attached " + humanJoin(names)) } +func (mi *messageInput) canAttachFiles() bool { + selected := mi.chat.SelectedChannel() + return selected != nil && mi.chat.state.HasPermissions(selected.ID, discord.PermissionAttachFiles) +} + func (mi *messageInput) ShortHelp() []keybind.Keybind { if mi.chat.GetVisible(mentionsListLayerName) { cfg := mi.cfg.Keybinds.MentionsList icfg := mi.cfg.Keybinds.MessageInput short := []keybind.Keybind{cfg.Up.Keybind, cfg.Down.Keybind, icfg.Cancel.Keybind} - if selected := mi.chat.SelectedChannel(); selected != nil && mi.chat.state.HasPermissions(selected.ID, discord.PermissionAttachFiles) { + if mi.canAttachFiles() { short = append(short, icfg.OpenFilePicker.Keybind) } return short @@ -762,7 +767,7 @@ func (mi *messageInput) ShortHelp() []keybind.Keybind { cfg := mi.cfg.Keybinds.MessageInput short := []keybind.Keybind{cfg.Send.Keybind, cfg.Cancel.Keybind, cfg.Paste.Keybind, cfg.OpenEditor.Keybind} - if selected := mi.chat.SelectedChannel(); selected != nil && mi.chat.state.HasPermissions(selected.ID, discord.PermissionAttachFiles) { + if mi.canAttachFiles() { short = append(short, cfg.OpenFilePicker.Keybind) } return short @@ -781,11 +786,8 @@ func (mi *messageInput) FullHelp() [][]keybind.Keybind { cfg := mi.cfg.Keybinds.MessageInput openEditor := []keybind.Keybind{cfg.Paste.Keybind, cfg.OpenEditor.Keybind} - selectedChannel := mi.chat.SelectedChannel() - if selectedChannel != nil { - if hasPerm := mi.chat.state.HasPermissions(selectedChannel.ID, discord.PermissionAttachFiles); hasPerm { - openEditor = append(openEditor, cfg.OpenFilePicker.Keybind) - } + if mi.canAttachFiles() { + openEditor = append(openEditor, cfg.OpenFilePicker.Keybind) } return [][]keybind.Keybind{ diff --git a/internal/ui/chat/messages_list.go b/internal/ui/chat/messages_list.go index 89a8d5f..f0ff7a2 100644 --- a/internal/ui/chat/messages_list.go +++ b/internal/ui/chat/messages_list.go @@ -1013,7 +1013,7 @@ func (ml *messagesList) fetchOlderMessages() tview.Cmd { older := slices.Clone(messages) slices.Reverse(older) - return newOlderMessagesLoadedMsg(channelID, older) + return olderMessagesLoadedMsg{ChannelID: channelID, Older: older} } } diff --git a/internal/ui/chat/msg.go b/internal/ui/chat/msg.go index 7d6a877..2013e1e 100644 --- a/internal/ui/chat/msg.go +++ b/internal/ui/chat/msg.go @@ -46,10 +46,6 @@ type olderMessagesLoadedMsg struct { Older []discord.Message } -func newOlderMessagesLoadedMsg(channelID discord.ChannelID, older []discord.Message) olderMessagesLoadedMsg { - return olderMessagesLoadedMsg{ChannelID: channelID, Older: older} -} - type LogoutMsg struct{} func (m *Model) logout() tview.Cmd { diff --git a/internal/ui/login/qr/model.go b/internal/ui/login/qr/model.go index cfbbcd2..8cb41f0 100644 --- a/internal/ui/login/qr/model.go +++ b/internal/ui/login/qr/model.go @@ -51,7 +51,7 @@ func (m *Model) Update(msg tview.Msg) tview.Cmd { case tview.KeyMsg: if msg.Key() == tcell.KeyEsc { m.msg = "Canceled" - return tview.Batch(m.close(), nil) + return m.close() } return m.TextView.Update(msg)