fix(chat): expand lazy tree nodes on first enter

This commit is contained in:
ayn2op 2026-02-24 21:23:12 -05:00
parent f65bdd6e45
commit 8962b0f8cd
2 changed files with 6 additions and 3 deletions

View file

@ -193,7 +193,7 @@ func (gt *guildsTree) getChannelNodeStyle(channelID discord.ChannelID) tcell.Sty
}
func (gt *guildsTree) createGuildNode(n *tview.TreeNode, guild discord.Guild) {
guildNode := tview.NewTreeNode(guild.Name).SetReference(guild.ID).SetExpandable(true)
guildNode := tview.NewTreeNode(guild.Name).SetReference(guild.ID).SetExpandable(true).SetExpanded(false)
gt.setNodeLineStyle(guildNode, gt.getGuildNodeStyle(guild.ID))
n.AddChild(guildNode)
gt.guildNodeByID[guild.ID] = guildNode
@ -206,7 +206,7 @@ func (gt *guildsTree) createChannelNode(node *tview.TreeNode, channel discord.Ch
channelNode := tview.NewTreeNode(ui.ChannelToString(channel, gt.cfg.Icons)).SetReference(channel.ID)
if channel.Type == discord.GuildForum {
channelNode.SetExpandable(true)
channelNode.SetExpandable(true).SetExpanded(false)
}
gt.setNodeLineStyle(channelNode, gt.getChannelNodeStyle(channel.ID))
node.AddChild(channelNode)
@ -279,6 +279,7 @@ func (gt *guildsTree) onSelected(node *tview.TreeNode) {
ui.SortGuildChannels(channels)
gt.createChannelNodes(node, channels)
node.Expand()
case discord.ChannelID:
channel, err := gt.chatView.state.Cabinet.Channel(ref)
if err != nil {
@ -309,6 +310,7 @@ func (gt *guildsTree) onSelected(node *tview.TreeNode) {
for _, thread := range forumThreads {
gt.createChannelNode(node, thread)
}
node.Expand()
return
}
@ -357,6 +359,7 @@ func (gt *guildsTree) onSelected(node *tview.TreeNode) {
for _, c := range channels {
gt.createChannelNode(node, c)
}
node.Expand()
}
}

View file

@ -85,7 +85,7 @@ func (v *View) onReady(event *gateway.ReadyEvent) {
// retain stale pointers to detached tree nodes.
v.guildsTree.resetNodeIndex()
dmNode := tview.NewTreeNode("Direct Messages").SetReference(dmNode{}).SetExpandable(true)
dmNode := tview.NewTreeNode("Direct Messages").SetReference(dmNode{}).SetExpandable(true).SetExpanded(false)
v.guildsTree.dmRootNode = dmNode
root := v.guildsTree.