diff options
author | Tulir Asokan <tulir@maunium.net> | 2019-04-13 14:27:50 +0300 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2019-04-13 14:27:50 +0300 |
commit | e5264a242d7fc6ac6b3f7bdca548163bb584875b (patch) | |
tree | 754f9dcae9cfb1ae8a8b0bd11bab35b5952ac688 /ui/room-view.go | |
parent | 43a7bdab7262c015b50e3e673e80389f9514f9ca (diff) |
Fix user list
Diffstat (limited to 'ui/room-view.go')
-rw-r--r-- | ui/room-view.go | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/ui/room-view.go b/ui/room-view.go index 2bb3e74..a2e1bc1 100644 --- a/ui/room-view.go +++ b/ui/room-view.go @@ -45,7 +45,7 @@ type RoomView struct { topic *mauview.TextView content *MessageView status *mauview.TextField - userList *mauview.TextView + userList *MemberList ulBorder *widget.Border input *mauview.InputArea Room *rooms.Room @@ -75,7 +75,7 @@ func NewRoomView(parent *MainView, room *rooms.Room) *RoomView { view := &RoomView{ topic: mauview.NewTextView(), status: mauview.NewTextField(), - userList: mauview.NewTextView(), + userList: NewMemberList(), ulBorder: widget.NewBorder(), input: mauview.NewInputArea(), Room: room, @@ -105,10 +105,6 @@ func NewRoomView(parent *MainView, room *rooms.Room) *RoomView { view.status.SetBackgroundColor(tcell.ColorDimGray) - view.userList. - SetDynamicColors(true). - SetWrap(false) - return view } @@ -418,22 +414,11 @@ func (view *RoomView) MxRoom() *rooms.Room { } func (view *RoomView) UpdateUserList() { - var joined strings.Builder - var invited strings.Builder - for userID, user := range view.Room.GetMembers() { - if user.Membership == "join" { - joined.WriteString(widget.AddColor(user.Displayname, widget.GetHashColorName(userID))) - joined.WriteRune('\n') - } else if user.Membership == "invite" { - invited.WriteString(widget.AddColor(user.Displayname, widget.GetHashColorName(userID))) - invited.WriteRune('\n') - } - } - view.userList.Clear() - fmt.Fprintf(view.userList, "%s\n", joined.String()) - if invited.Len() > 0 { - fmt.Fprintf(view.userList, "\nInvited:\n%s", invited.String()) + pls := &mautrix.PowerLevels{} + if plEvent := view.Room.GetStateEvent(mautrix.StatePowerLevels, ""); plEvent != nil { + pls = plEvent.Content.GetPowerLevels() } + view.userList.Update(view.Room.GetMembers(), pls) } func (view *RoomView) AddServiceMessage(text string) { |