feat(chat): update dm node on presence update (#814)
This commit is contained in:
parent
2e05191900
commit
2501deac82
3 changed files with 19 additions and 0 deletions
|
|
@ -74,6 +74,19 @@ func (gt *guildsTree) resetNodeIndex() {
|
|||
gt.dmRootNode = nil
|
||||
}
|
||||
|
||||
func (gt *guildsTree) updateDMNodeStyle(userID discord.UserID) {
|
||||
channel, err := gt.chat.state.Cabinet.CreatePrivateChannel(userID)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
node, ok := gt.channelNodeByID[channel.ID]
|
||||
if node == nil || !ok {
|
||||
return
|
||||
}
|
||||
gt.setNodeLineStyle(node, gt.channelNodeStyle(*channel))
|
||||
}
|
||||
|
||||
func (gt *guildsTree) createFolderNode(folder gateway.GuildFolder, guildsByID map[discord.GuildID]*gateway.GuildCreateEvent) {
|
||||
name := "Folder"
|
||||
if folder.Name != "" {
|
||||
|
|
|
|||
|
|
@ -264,6 +264,8 @@ func (m *Model) Update(msg tview.Msg) tview.Cmd {
|
|||
return tview.Batch(m.onMessageCreate(eventMsg), m.listen())
|
||||
case *gateway.MessageUpdateEvent:
|
||||
m.onMessageUpdate(eventMsg)
|
||||
case *gateway.PresenceUpdateEvent:
|
||||
m.onPresenceUpdate(eventMsg)
|
||||
case *gateway.MessageDeleteEvent:
|
||||
m.onMessageDelete(eventMsg)
|
||||
|
||||
|
|
|
|||
|
|
@ -115,6 +115,10 @@ func (m *Model) notify(message gateway.MessageCreateEvent) tview.Cmd {
|
|||
}
|
||||
}
|
||||
|
||||
func (m *Model) onPresenceUpdate(presence *gateway.PresenceUpdateEvent) {
|
||||
m.guildsTree.updateDMNodeStyle(presence.User.ID)
|
||||
}
|
||||
|
||||
func (m *Model) onMessageUpdate(message *gateway.MessageUpdateEvent) {
|
||||
selectedChannel, ok := m.SelectedChannel()
|
||||
if !ok || selectedChannel.ID != message.ChannelID {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue