45 lines
761 B
Go
45 lines
761 B
Go
package main
|
|
|
|
import (
|
|
"github.com/diamondburned/arikawa/v3/discord"
|
|
"github.com/rivo/tview"
|
|
)
|
|
|
|
type GuildsTree struct {
|
|
*tview.TreeView
|
|
}
|
|
|
|
func newGuildsTree() *GuildsTree {
|
|
gt := &GuildsTree{
|
|
TreeView: tview.NewTreeView(),
|
|
}
|
|
|
|
root := tview.NewTreeNode("")
|
|
gt.SetRoot(root)
|
|
gt.SetTopLevel(1)
|
|
gt.SetSelectedFunc(gt.onSelected)
|
|
|
|
gt.SetBorder(true)
|
|
gt.SetBorderPadding(cfg.BorderPadding())
|
|
|
|
return gt
|
|
}
|
|
|
|
func (gt *GuildsTree) newGuild(n *tview.TreeNode, gid discord.GuildID) error {
|
|
g, err := discordState.Cabinet.Guild(gid)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
gn := tview.NewTreeNode(g.Name)
|
|
gn.SetReference(g.ID)
|
|
n.AddChild(gn)
|
|
return nil
|
|
}
|
|
|
|
func (gt *GuildsTree) onSelected(n *tview.TreeNode) {
|
|
ref := n.GetReference()
|
|
if ref == nil {
|
|
|
|
}
|
|
}
|