diff --git a/guilds_tree.go b/guilds_tree.go index ed06006..5ef6113 100644 --- a/guilds_tree.go +++ b/guilds_tree.go @@ -89,6 +89,14 @@ func (gt *GuildsTree) channelToString(c discord.Channel) string { } func (gt *GuildsTree) onSelected(n *tview.TreeNode) { + gt.selectedChannel = nil + + messagesText.selectedMessage = nil + messagesText.Highlight() + + messageInput.SetTitle("") + messageInput.SetText("") + if len(n.GetChildren()) != 0 { n.SetExpanded(!n.IsExpanded()) return diff --git a/main.go b/main.go index 3bae4b4..e15f23b 100644 --- a/main.go +++ b/main.go @@ -35,16 +35,16 @@ func main() { log.Fatal(err) } - discordState = newState(token) - if err = discordState.Open(context.Background()); err != nil { - log.Fatal(err) - } - // Initialize UI guildsTree = newGuildsTree() messagesText = newMessagesText() messageInput = newMessageInput() + discordState = newState(token) + if err = discordState.Open(context.Background()); err != nil { + log.Fatal(err) + } + right := tview.NewFlex() right.SetDirection(tview.FlexRow) right.AddItem(messagesText, 0, 1, false) diff --git a/message_input.go b/message_input.go index aaf2e18..29d23fe 100644 --- a/message_input.go +++ b/message_input.go @@ -22,7 +22,6 @@ func newMessageInput() *MessageInput { mi.SetFieldBackgroundColor(tview.Styles.PrimitiveBackgroundColor) mi.SetInputCapture(mi.onInputCapture) - mi.SetTitleAlign(tview.AlignLeft) padding := cfg.Theme.MessageInput.BorderPadding diff --git a/messages_text.go b/messages_text.go index 1b9d9a0..efd94af 100644 --- a/messages_text.go +++ b/messages_text.go @@ -69,6 +69,9 @@ func (mt *MessagesText) newMessage(m *discord.Message) error { // Content mt.newContent(m) + // Attachments + mt.newAttachments(m) + // Tags with no region ID ([""]) don't start new regions. They can therefore be used to mark the end of a region. fmt.Fprint(mt, `[""]`) } @@ -89,6 +92,12 @@ func (mt *MessagesText) newContent(m *discord.Message) { fmt.Fprint(mt, tview.Escape(m.Content)) } +func (mt *MessagesText) newAttachments(m *discord.Message) { + for _, a := range m.Attachments { + fmt.Fprintf(mt, "\n[%s]: %s", a.Filename, a.URL) + } +} + func (mt *MessagesText) onHighlighted(added, removed, remaining []string) { if len(added) == 0 { return