Load Playlists in draw func

This commit is contained in:
aditya-K2
2023-04-19 08:57:29 +05:30
parent 762c856574
commit 9b21d6a8ad

View File

@@ -52,28 +52,39 @@ type PlaylistNav struct {
done func(error) done func(error)
} }
func NewPlaylistNav(done func(e error)) (*PlaylistNav, error) { func NewPlaylistNav() *PlaylistNav {
T := tview.NewTable() T := tview.NewTable()
T.SetSelectable(true, false).SetBorder(true) T.SetSelectable(true, false).SetBorder(true)
T.SetTitle("Playlists").SetTitleAlign(tview.AlignLeft) T.SetTitle("Playlists").SetTitleAlign(tview.AlignLeft)
p, err := spt.CurrentUserPlaylists(done) v := &PlaylistNav{&defView{}, T, nil, make(chan bool), func(err error) {
if err != nil {
if err != nil { SendNotification(err.Error())
return nil, err }
} }}
v := &PlaylistNav{&defView{}, T, p, make(chan bool), done}
v.listen() v.listen()
T.SetDrawFunc(func(s tcell.Screen, x, y, w, h int) (int, int, int, int) { T.SetDrawFunc(func(s tcell.Screen, x, y, w, h int) (int, int, int, int) {
v.Draw() v.Draw()
return T.GetInnerRect() return T.GetInnerRect()
}) })
return v
return v, nil
} }
func (v *PlaylistNav) Draw() { func (v *PlaylistNav) Draw() {
if v.Playlists == nil {
done := func(err error) {
if err != nil {
SendNotification(err.Error())
return
}
App.Draw()
}
p, err := spt.CurrentUserPlaylists(done)
if err != nil {
SendNotification(err.Error())
return
}
v.Playlists = p
}
for k, p := range *v.Playlists { for k, p := range *v.Playlists {
v.Table.SetCell(k, 0, v.Table.SetCell(k, 0,
GetCell(p.Name, PlaylistNavStyle)) GetCell(p.Name, PlaylistNavStyle))